[jbpm-commits] JBoss JBPM SVN: r2665 - jbpm3/trunk/modules/core/src/main/java/org/jbpm/db.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Oct 30 02:31:55 EDT 2008


Author: alex.guizar at jboss.com
Date: 2008-10-30 02:31:54 -0400 (Thu, 30 Oct 2008)
New Revision: 2665

Modified:
   jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/GraphSession.java
Log:
attempt at simplifying GraphSession.findNextProcessInstance

Modified: jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/GraphSession.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/GraphSession.java	2008-10-30 01:56:59 UTC (rev 2664)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/db/GraphSession.java	2008-10-30 06:31:54 UTC (rev 2665)
@@ -33,6 +33,7 @@
 import org.hibernate.LockMode;
 import org.hibernate.Query;
 import org.hibernate.Session;
+import org.hibernate.criterion.Restrictions;
 import org.jbpm.JbpmException;
 import org.jbpm.graph.def.ProcessDefinition;
 import org.jbpm.graph.exe.ProcessInstance;
@@ -224,22 +225,22 @@
   }
 
   public void deleteProcessDefinition(ProcessDefinition processDefinition) {
-    if (processDefinition==null) throw new JbpmException("processDefinition is null in JbpmSession.deleteProcessDefinition()");
+    if (processDefinition==null) {
+      throw new JbpmException("processDefinition is null");
+    }
     try {
       // delete all the process instances of this definition
-      ProcessInstance processInstance = findNextProcessInstance(processDefinition.getId());
-      while (processInstance!=null) {
+      for (ProcessInstance processInstance; 
+        ((processInstance = findNextProcessInstance(processDefinition)) != null);) {
         deleteProcessInstance(processInstance);
-        processInstance = findNextProcessInstance(processDefinition.getId());
       }
-      
+
       List referencingProcessStates = findReferencingProcessStates(processDefinition);
-      Iterator iter = referencingProcessStates.iterator();
-      while (iter.hasNext()) {
+      for (Iterator iter = referencingProcessStates.iterator(); iter.hasNext();) {
         ProcessState processState = (ProcessState) iter.next();
         processState.setSubProcessDefinition(null);
       }
-      
+
       // then delete the process definition
       session.delete(processDefinition);
 
@@ -250,11 +251,11 @@
     } 
   }
 
-  protected ProcessInstance findNextProcessInstance(long processDefinitionId) {
-    Query query = session.getNamedQuery("GraphSession.findAllProcessInstancesForADefinition");
-    query.setLong("processDefinitionId", processDefinitionId);
-    query.setMaxResults(1);
-    return (ProcessInstance) query.uniqueResult();
+  protected ProcessInstance findNextProcessInstance(ProcessDefinition processDefinition) {
+    return (ProcessInstance) session.createCriteria(ProcessInstance.class)
+      .add(Restrictions.eq("processDefinition", processDefinition))
+      .setMaxResults(1)
+      .uniqueResult();
   }
 
   protected List findReferencingProcessStates(ProcessDefinition subProcessDefinition) {




More information about the jbpm-commits mailing list