[jbpm-commits] JBoss JBPM SVN: r6260 - in jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm: graph/node and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Apr 15 16:04:37 EDT 2010


Author: alex.guizar at jboss.com
Date: 2010-04-15 16:04:36 -0400 (Thu, 15 Apr 2010)
New Revision: 6260

Modified:
   jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/db/GraphSession.java
   jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/DbSubProcessResolver.java
   jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/ProcessState.java
Log:
restored old method of deleting process instances because mysql did not like the new one

Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/db/GraphSession.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/db/GraphSession.java	2010-04-15 16:45:49 UTC (rev 6259)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/db/GraphSession.java	2010-04-15 20:04:36 UTC (rev 6260)
@@ -27,11 +27,11 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.hibernate.Hibernate;
 import org.hibernate.HibernateException;
 import org.hibernate.LockMode;
 import org.hibernate.ObjectNotFoundException;
 import org.hibernate.Session;
+import org.hibernate.criterion.Projections;
 import org.hibernate.criterion.Restrictions;
 
 import org.jbpm.JbpmContext;
@@ -245,19 +245,15 @@
   public void deleteProcessDefinition(ProcessDefinition processDefinition) {
     try {
       // delete all instances of the given process
-      Iterator processInstanceIter = session.getNamedQuery("GraphSession.findAllProcessInstancesForDefinition")
-        .setLong("processDefinitionId", processDefinition.getId())
-        .iterate();
-      while (processInstanceIter.hasNext()) {
-        ProcessInstance processInstance = (ProcessInstance) processInstanceIter.next();
-        if (processInstance != null) {
-          deleteProcessInstance(processInstance);
-          // flush changes and then evict process instance to avoid exhausting memory
-          session.flush();
-          session.evict(processInstance);
-        }
+      List processInstances = session.createCriteria(ProcessInstance.class)
+        .add(Restrictions.eq("processDefinition", processDefinition))
+        .setProjection(Projections.id())
+        .list();
+      for (Iterator iter = processInstances.iterator(); iter.hasNext();) {
+        Long id = (Long) iter.next();
+        ProcessInstance processInstance = (ProcessInstance) session.get(ProcessInstance.class, id);
+        if (processInstance != null) deleteProcessInstance(processInstance);
       }
-      Hibernate.close(processInstanceIter);
 
       List referencingProcessStates = findReferencingProcessStates(processDefinition);
       for (Iterator i = referencingProcessStates.iterator(); i.hasNext();) {

Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/DbSubProcessResolver.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/DbSubProcessResolver.java	2010-04-15 16:45:49 UTC (rev 6259)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/DbSubProcessResolver.java	2010-04-15 20:04:36 UTC (rev 6260)
@@ -11,7 +11,6 @@
   private static final long serialVersionUID = 1L;
 
   public ProcessDefinition findSubProcess(Element subProcessElement) {
-
     // if this parsing is done in the context of a process deployment,
     // there is a database connection to look up the subprocess.
     // when there is no jbpmSession, the definition will be left null...
@@ -41,8 +40,7 @@
         return graphSession.findProcessDefinition(subProcessName, version);
       }
       catch (NumberFormatException e) {
-        throw new JpdlException("subprocess version is invalid: "
-          + subProcessElement.getPath());
+        throw new JpdlException("bad subprocess version: " + subProcessVersion);
       }
     }
 

Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/ProcessState.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/ProcessState.java	2010-04-15 16:45:49 UTC (rev 6259)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/ProcessState.java	2010-04-15 20:04:36 UTC (rev 6260)
@@ -120,7 +120,7 @@
       }
     }
     catch (JbpmException e) {
-      jpdlReader.addWarning(e.getMessage());
+      jpdlReader.addError("failed to resolve subprocess", e);
     }
 
     // check whether this is a recursive process invocation



More information about the jbpm-commits mailing list