[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