[jbpm-commits] JBoss JBPM SVN: r2703 - in projects/spec/trunk/modules: api/src/main/java/org/jbpm/api/runtime and 15 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Oct 31 09:42:22 EDT 2008


Author: thomas.diesler at jboss.com
Date: 2008-10-31 09:42:21 -0400 (Fri, 31 Oct 2008)
New Revision: 2703

Added:
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/NodeNotFoundException.java
Removed:
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/SessionAssociation.java
Modified:
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/ProcessNotFoundException.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/Token.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/endevent/EndEventMessageTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/inclusive/InclusiveGatewayMergeTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/inclusive/InclusiveGatewaySplitTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/parallel/ParallelGatewayMergeTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/parallel/ParallelGatewaySplitTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/node/NodeInputSetTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/node/NodeOutputSetTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/node/NodePropertyTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/process/ProcessPropertyTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/startevent/StartEventSignalTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/ReceiveTaskTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/SendTaskTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/TaskExecutionHandlerTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/UserTaskCallbackTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/UserTaskTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java
   projects/spec/trunk/modules/cts/src/test/resources/log4j.xml
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeContext.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenExecutorImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
Log:
Associate persistence session with token

Added: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/NodeNotFoundException.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/NodeNotFoundException.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/NodeNotFoundException.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api;
+
+
+// $Id$
+
+/**
+ * A RuntimeException that is when a node cannot be found in persistent storage.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 18-Sep-2008
+ */
+ at SuppressWarnings("serial")
+public class NodeNotFoundException extends BPMException
+{
+  public NodeNotFoundException(String message)
+  {
+    super(message);
+  }
+
+  public NodeNotFoundException(String message, Throwable cause)
+  {
+    super(message, cause);
+  }
+}


Property changes on: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/NodeNotFoundException.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/ProcessNotFoundException.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/ProcessNotFoundException.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/ProcessNotFoundException.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -33,13 +33,13 @@
 @SuppressWarnings("serial")
 public class ProcessNotFoundException extends BPMException
 {
-  public ProcessNotFoundException()
-  {
-    super();
-  }
-
   public ProcessNotFoundException(String message)
   {
     super(message);
   }
+  
+  public ProcessNotFoundException(String message, Throwable cause)
+  {
+    super(message, cause);
+  }
 }

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/Token.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/Token.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/runtime/Token.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -23,6 +23,7 @@
 
 // $Id$
 
+import org.hibernate.Session;
 import org.jbpm.api.model.SequenceFlow;
 
 /**
@@ -62,5 +63,10 @@
   /**
    * Get the current {@link SequenceFlow}
    */
-  SequenceFlow getFlow();
+  SequenceFlow getSequenceFlow();
+  
+  /**
+   * Get the associated persistence session
+   */
+  Session getSession();
 }
\ No newline at end of file

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/endevent/EndEventMessageTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/endevent/EndEventMessageTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/endevent/EndEventMessageTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -54,7 +54,7 @@
     proc.startProcess(att);
 
     // Wait for the process to end
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
 
     // Verify the result
     Message endMessage = getMessages().get(0);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -53,7 +53,7 @@
     proc.startProcess();
 
     // Wait for the process to end
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
 
     // Verify the result
     List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewaySplitTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -54,7 +54,7 @@
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "5");
     proc.startProcess(att);
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
 
     List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);
     assertEquals(1, endSignals.size());
@@ -69,7 +69,7 @@
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "15");
     proc.startProcess(att);
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
 
     List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);
     assertEquals(1, endSignals.size());
@@ -86,7 +86,7 @@
     proc.startProcess(att);
     try
     {
-      proc.waitForEnd();
+      proc.waitForEnd(5000);
       fail("No gate defined for foo==10");
     }
     catch (RuntimeException rte)

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/inclusive/InclusiveGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/inclusive/InclusiveGatewayMergeTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/inclusive/InclusiveGatewayMergeTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -52,7 +52,7 @@
     proc.startProcess();
 
     // Wait for the process to end
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
 
     List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);
     assertEquals(2, endSignals.size());

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/inclusive/InclusiveGatewaySplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/inclusive/InclusiveGatewaySplitTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/inclusive/InclusiveGatewaySplitTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -54,7 +54,7 @@
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "5");
     proc.startProcess(att);
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
 
     List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);
     assertEquals(2, endSignals.size());
@@ -68,7 +68,7 @@
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "15");
     proc.startProcess(att);
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
 
     List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);
     assertEquals(1, endSignals.size());

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/parallel/ParallelGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/parallel/ParallelGatewayMergeTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/parallel/ParallelGatewayMergeTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -56,7 +56,7 @@
     proc.startProcess();
 
     // Wait for the process to end
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
 
     // Verify the result
     Message endMessage = getMessages().get(0);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/parallel/ParallelGatewaySplitTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/parallel/ParallelGatewaySplitTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/parallel/ParallelGatewaySplitTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -52,7 +52,7 @@
     Process proc = procDef.newInstance();
     
     proc.startProcess();
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
 
     // Validate received signals
     List<Signal> signals = getSignals(SignalType.SYSTEM_END_EVENT_ENTER);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/node/NodeInputSetTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/node/NodeInputSetTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/node/NodeInputSetTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -56,7 +56,7 @@
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("frog", "kermit");
     proc.startProcess(att);
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
 
     Message endMessage = getMessages().get(0);
     assertNotNull("EndMessage expected", endMessage);
@@ -74,7 +74,7 @@
 
     try
     {
-      proc.waitForEnd();
+      proc.waitForEnd(5000);
     }
     catch (RuntimeException ex)
     {

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/node/NodeOutputSetTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/node/NodeOutputSetTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/node/NodeOutputSetTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -54,7 +54,7 @@
     Process proc = procDef.newInstance();
 
     proc.startProcess();
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
 
     Message endMessage = getMessages().get(0);
     assertNotNull("EndMessage expected", endMessage);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/node/NodePropertyTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/node/NodePropertyTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/node/NodePropertyTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -55,7 +55,7 @@
     Process proc = procDef.newInstance();
     
     proc.startProcess();
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
     
     Message endMessage = getMessages().get(0);
     assertNotNull("EndMessage expected", endMessage);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/process/ProcessPropertyTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/process/ProcessPropertyTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/process/ProcessPropertyTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -60,7 +60,7 @@
     Process proc = procDef.newInstance();
     
     proc.startProcess();
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
 
     Message endMessage = getMessages().get(0);
     assertNotNull("EndMessage expected", endMessage);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessServiceTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -100,7 +100,7 @@
     {
       // Start the process, which automatically adds it to the registry
       proc.startProcess();
-      proc.waitForEnd();
+      proc.waitForEnd(5000);
     }
     finally
     {

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/startevent/StartEventSignalTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/startevent/StartEventSignalTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/startevent/StartEventSignalTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -85,7 +85,7 @@
     
     // Wait for the process to end
     if (proc != null)
-      proc.waitForEnd();
+      proc.waitForEnd(5000);
 
     // Verify the result
     Message endMessage = getMessages().get(0);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/ReceiveTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/ReceiveTaskTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/ReceiveTaskTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -104,7 +104,7 @@
       msgService.sendMessage(procID, "TaskA", getMessage());
 
       proc.startProcess();
-      proc.waitForEnd(1000);
+      proc.waitForEnd(5000);
     }
     finally
     {
@@ -146,7 +146,7 @@
     try
     {
       proc.startProcess();
-      proc.waitForEnd(1000);
+      proc.waitForEnd(5000);
     }
     finally
     {

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/SendTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/SendTaskTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/SendTaskTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -53,7 +53,7 @@
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "bar");
     proc.startProcess(att);
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
     
     List<Message> messages = getMessages();
     assertEquals(1, messages.size());

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/TaskExecutionHandlerTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/TaskExecutionHandlerTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/TaskExecutionHandlerTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -52,7 +52,7 @@
     Process proc = procDef.newInstance();
     
     proc.startProcess();
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
     
     assertEquals("kermit", TaskExecutionHandler.procProp);
     assertEquals("piggy", TaskExecutionHandler.taskProp);

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/UserTaskCallbackTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/UserTaskCallbackTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/UserTaskCallbackTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -59,7 +59,7 @@
     BasicAttachments att = new BasicAttachments();
     att.addAttachment("foo", "xxx");
     proc.startProcess(att);
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
 
     List<Message> messages = getMessages();
     assertEquals(1, messages.size());

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/UserTaskTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/UserTaskTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/task/UserTaskTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -73,7 +73,7 @@
       BasicAttachments att = new BasicAttachments();
       att.addAttachment("foo", "xxx");
       proc.startProcess(att);
-      proc.waitForEnd(1000);
+      proc.waitForEnd(5000);
       
       List<Message> messages = getMessages();
       assertEquals(1, messages.size());

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/transaction/TxRequiredTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -61,7 +61,7 @@
     Process proc = procDef.newInstance();
 
     proc.startProcess();
-    proc.waitForEnd(1000);
+    proc.waitForEnd(5000);
   }
 
   protected ProcessDefinition getProcessDefinition() throws IOException

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -52,10 +52,10 @@
     proc.startProcess();
 
     // Wait for the process to end
-    proc.waitForEnd();
+    proc.waitForEnd(5000);
 
     List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);
-    assertEquals(2, endSignals.size());
+    assertEquals("Two end signals expected", 2, endSignals.size());
   }
 
   public ProcessDefinition getProcessDefinition() throws IOException

Modified: projects/spec/trunk/modules/cts/src/test/resources/log4j.xml
===================================================================
--- projects/spec/trunk/modules/cts/src/test/resources/log4j.xml	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/cts/src/test/resources/log4j.xml	2008-10-31 13:42:21 UTC (rev 2703)
@@ -35,9 +35,6 @@
   <category name="org.hibernate">
     <priority value="INFO" />
   </category>
-  <category name="org.hibernate.persister">
-    <priority value="DEBUG" />
-  </category>
 
   <!-- ======================= -->
   <!-- Setup the Root category -->

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ExclusiveGatewayImpl.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -97,7 +97,7 @@
         if (outstandingFlows == null)
           outstandingFlows = new HashSet<SequenceFlow>(inFlows);
 
-        SequenceFlow flow = token.getFlow();
+        SequenceFlow flow = token.getSequenceFlow();
         outstandingFlows.remove(flow);
       }
       
@@ -124,7 +124,7 @@
 
       public void execute(TokenExecutor tokenExecutor, Token token)
       {
-        Node sourceRef = token.getFlow().getSourceRef();
+        Node sourceRef = token.getSequenceFlow().getSourceRef();
         
         // Schedule the first token that arrives
         if (token == receivedTokens.get(0))

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/GatewayImpl.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -172,7 +172,7 @@
         }
         
         // Check that token from flow is valid
-        SequenceFlow flow = token.getFlow();
+        SequenceFlow flow = token.getSequenceFlow();
         if (expectedFlows.contains(flow) == false)
           throw new IllegalStateException("Unexpected token from: " + flow);
         

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/InclusiveGatewayImpl.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -84,7 +84,7 @@
       public void execute(TokenExecutor tokenExecutor, Token token)
       {
         MutableToken mutableToken = (MutableToken)token;
-        Node sourceRef = token.getFlow().getSourceRef();
+        Node sourceRef = token.getSequenceFlow().getSourceRef();
         log.debug("Propagate token comming from: " + sourceRef);
 
         // Get the applicable gates

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/model/ParallelGatewayImpl.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -97,7 +97,7 @@
           mergeTokens = new HashSet<Token>();
         }
 
-        SequenceFlow flow = token.getFlow();
+        SequenceFlow flow = token.getSequenceFlow();
         outstandingFlows.remove(flow);
         mergeTokens.add(token);
       }
@@ -156,7 +156,7 @@
           for(SequenceFlow auxGate : getGates())
           {
             SequenceFlow outFlow = auxGate;
-            outToken = (MutableToken)outToken.copyToken();
+            outToken = outToken.copyToken();
             tokenExecutor.create(outToken, outFlow);
             outTokens.add(outToken);
           }
@@ -199,7 +199,7 @@
   
   private TokenImpl getMergedTokens()
   {
-    TokenImpl mergedToken = new TokenImpl(null);
+    TokenImpl mergedToken = new TokenImpl(getProcessEngine(), null);
     for (Token auxToken : mergeTokens)
     {
       log.debug("mergeToken: " + auxToken);

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/DelegatingToken.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -23,6 +23,7 @@
 
 //$Id$
 
+import org.hibernate.Session;
 import org.jbpm.api.model.Node;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.api.runtime.ExecutionContext;
@@ -43,7 +44,7 @@
   {
     this.delegateToken = token;
 
-    Node targetRef = token.getFlow().getTargetRef();
+    Node targetRef = token.getSequenceFlow().getTargetRef();
     ExecutionContext exContext = token.getExecutionContext();
     this.delegateContext = new DelegatingExecutionContext(targetRef, exContext);
   }
@@ -55,15 +56,15 @@
   }
 
   @Override
-  public Token copyToken()
+  public MutableToken copyToken()
   {
     return delegateToken.copyToken();
   }
 
   @Override
-  public SequenceFlow getFlow()
+  public SequenceFlow getSequenceFlow()
   {
-    return delegateToken.getFlow();
+    return delegateToken.getSequenceFlow();
   }
 
   @Override
@@ -85,9 +86,9 @@
   }
 
   @Override
-  public void setFlow(SequenceFlow flow)
+  public void setSequenceFlow(SequenceFlow flow)
   {
-    delegateToken.setFlow(flow);
+    delegateToken.setSequenceFlow(flow);
   }
 
   @Override
@@ -96,9 +97,20 @@
     delegateToken.setTokenStatus(status);
   }
 
+  @Override
+  public Session getSession()
+  {
+    return delegateToken.getSession();
+  }
+
+  @Override
+  public void closeSession()
+  {
+    delegateToken.closeSession();
+  }
+
   public String toString()
   {
-    Node node = getFlow().getTargetRef();
-    return "[fo=" + node + ",ctx=" + getExecutionContext() + "]";
+    return delegateToken.toString();
   }
 }
\ No newline at end of file

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/MutableToken.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -27,25 +27,36 @@
 import org.jbpm.api.runtime.Token;
 
 /**
- * A Token is a descriptive construct used to describe how the flow of a Process will proceed at runtime.
+ * A mutable extension to the Token.
  * 
  * @author Thomas.Diesler at jboss.com
  * @since 20-Apr-2007
  */
 public interface MutableToken extends Token
 {
+  /**
+   * Set the token status
+   */
   void setTokenStatus(TokenStatus status);
 
-  void setFlow(SequenceFlow flow);
+  /**
+   * Set the current SequenceFlow
+   */
+  void setSequenceFlow(SequenceFlow flow);
 
   /**
    * Create a schallow copy of this Token. 
    * The content in the ExecutionContext will be copied by reference.
    */
-  Token copyToken();
+  MutableToken copyToken();
 
   /**
    * Merge this Token with another token.
    */
   void mergeToken(Token token);
+
+  /**
+   * Close the current session
+   */
+  void closeSession();
 }
\ No newline at end of file

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RunnableToken.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -72,14 +72,14 @@
     Process proc = rtProc.getProcess();
     try
     {
-      SequenceFlow flow = token.getFlow();
+      SequenceFlow flow = token.getSequenceFlow();
       if (flow == null)
         throw new IllegalStateException("Cannot obtain initial flow");
 
       while (continueTokenThread())
       {
         // Get the target node
-        Node node = token.getFlow().getTargetRef();
+        Node node = token.getSequenceFlow().getTargetRef();
 
         // Synchronize on the target Node
         synchronized (node)

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeContext.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeContext.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/RuntimeContext.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -57,7 +57,7 @@
 
   public Node getNode()
   {
-    return token.getFlow().getTargetRef();
+    return token.getSequenceFlow().getTargetRef();
   }
 
   public Token getToken()

Deleted: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/SessionAssociation.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/SessionAssociation.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/SessionAssociation.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -1,70 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.ri.runtime;
-
-//$Id$
-
-import org.hibernate.Session;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Associates the Hibernate session with the current thread
- * 
- * @author thomas.diesler at jboss.com
- * @since 10-Oct-2008
- */
-public abstract class SessionAssociation
-{
-  final static Logger log = LoggerFactory.getLogger(SessionAssociation.class);
-  
-  private static ThreadLocal<Session> sessionAssociation = new ThreadLocal<Session>();
-
-  public static Session getSession()
-  {
-    return sessionAssociation.get();
-  }
-
-  public static Session setSession(Session session)
-  {
-    sessionAssociation.set(session);
-    return session;
-  }
-
-  public static void closeSession(Session session)
-  {
-    if (session != getSession())
-      throw new IllegalArgumentException("Not the associated session");
-    
-    // Close the session
-    try
-    {
-      session.close();
-    }
-    catch (RuntimeException rte)
-    {
-      log.error("Cannot close the associated session", rte);
-    }
-    
-    sessionAssociation.remove();
-  }
-}
\ No newline at end of file

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenExecutorImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenExecutorImpl.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenExecutorImpl.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -87,7 +87,7 @@
     {
       MutableToken mutableToken = (MutableToken)token;
       mutableToken.setTokenStatus(TokenStatus.Created);
-      mutableToken.setFlow(initialFlow);
+      mutableToken.setSequenceFlow(initialFlow);
 
       log.debug("Create Token: " + token);
 
@@ -124,7 +124,7 @@
         throw new IllegalStateException("Cannot move token in state: " + token.getTokenStatus());
 
       MutableToken mutableToken = (MutableToken)token;
-      mutableToken.setFlow(flow);
+      mutableToken.setSequenceFlow(flow);
     }
   }
 
@@ -145,6 +145,7 @@
       log.debug("Destroy Token: " + token);
       MutableToken mutableToken = (MutableToken)token;
       mutableToken.setTokenStatus(TokenStatus.Destroyed);
+      mutableToken.closeSession();
       runnableTokens.remove(token.getTokenID());
     }
   }
@@ -160,6 +161,7 @@
       log.debug("Suspend Token: " + token);
       MutableToken mutableToken = (MutableToken)token;
       mutableToken.setTokenStatus(TokenStatus.Suspended);
+      mutableToken.closeSession();
 
       // Release the thread for a suspended token
       rtToken.releaseThread();

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TokenImpl.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -23,13 +23,16 @@
 
 //$Id$
 
+import org.hibernate.Session;
 import org.jboss.util.id.UID;
+import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.SequenceFlow;
 import org.jbpm.api.runtime.Attachments;
 import org.jbpm.api.runtime.BasicExecutionContext;
 import org.jbpm.api.runtime.ExecutionContext;
 import org.jbpm.api.runtime.Token;
 import org.jbpm.api.runtime.Attachments.Key;
+import org.jbpm.api.service.PersistenceService;
 
 /**
  * A Token is a descriptive construct used to describe how the flow of a Process will proceed at runtime.
@@ -49,60 +52,84 @@
   private SequenceFlow flow;
   private ExecutionContext context;
   private TokenStatus status;
+  private ProcessEngine engine;
+  private Session session;
 
   /**
    * Construct a Token with given {@link Attachments}
    */
-  public TokenImpl(Attachments att)
+  public TokenImpl(ProcessEngine engine, Attachments att)
   {
     this.context = new BasicExecutionContext(att);
     this.id = new UID().toString();
     this.status = TokenStatus.Created;
+    this.engine = engine;
   }
 
+  @Override
   public String getTokenID()
   {
     return id;
   }
 
+  @Override
   public TokenStatus getTokenStatus()
   {
     return status;
   }
 
+  @Override
   public void setTokenStatus(TokenStatus status)
   {
     this.status = status;
   }
   
+  @Override
   public ExecutionContext getExecutionContext()
   {
     return context;
   }
   
-  public SequenceFlow getFlow()
+  @Override
+  public SequenceFlow getSequenceFlow()
   {
     return flow;
   }
 
-  public void setFlow(SequenceFlow flow)
+  @Override
+  public void setSequenceFlow(SequenceFlow flow)
   {
     this.flow = flow;
   }
 
-  /**
-   * Create a schallow copy of this Token.
-   * <p/>
-   * The content in the {@link ExecutionContext} will be copied by reference. 
-   */
-  public Token copyToken()
+  @Override
+  public Session getSession()
   {
-    return new TokenImpl(context);
+    if (session == null)
+    {
+      PersistenceService service = engine.getService(PersistenceService.class);
+      session = service.createSession();
+    }
+    return session;
   }
   
-  /**
-   * Merge this Token with another token.
-   */
+  @Override
+  public void closeSession()
+  {
+    if (session != null)
+    {
+      session.close();
+      session = null;
+    }
+  }
+  
+  @Override
+  public MutableToken copyToken()
+  {
+    return new TokenImpl(engine, context);
+  }
+  
+  @Override
   public void mergeToken(Token token)
   {
     ExecutionContext mergeContext = token.getExecutionContext();
@@ -119,6 +146,6 @@
   
   public String toString()
   {
-    return "[sf=" + getFlow() + ",status=" + getTokenStatus() + ",ctx=" + getExecutionContext() + "]";
+    return "[sf=" + getSequenceFlow() + ",status=" + getTokenStatus() + ",ctx=" + getExecutionContext() + ",id=" + id + "]";
   }
 }
\ No newline at end of file

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/runtime/TransactionInterceptor.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -27,6 +27,7 @@
 import org.hibernate.Transaction;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Node;
+import org.jbpm.api.runtime.Token;
 import org.jbpm.api.service.PersistenceService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -47,32 +48,34 @@
   public void execute(RuntimeContext rtContext)
   {
     Node node = rtContext.getNode();
+    Token token = rtContext.getToken();
     
-    PersistenceService service = getPersistenceService(node.getProcessEngine());
-    Session session = SessionAssociation.setSession(service.createSession());
-
     // Begin the Tx
+    Session session = token.getSession();
     Transaction tx = session.beginTransaction();
     try
     {
       // Load the node
+      PersistenceService service = getPersistenceService(node.getProcessEngine());
       node = service.loadNode(session, node.getClass(), node.getKey());
       
       // Call the next interceptor in the chain
       rtContext.next();
       
-      // Save the node
-      service.saveNode(session, node);
-      
-      // Commit the Tx
-      tx.commit();
+      // Save the node and commit the Tx
+      if (session.isOpen())
+      {
+        service.saveNode(session, node);
+        tx.commit();
+      }
     }
     catch (RuntimeException rte)
     {
       try
       {
         // Rollback the Tx
-        tx.rollback();
+        if (session.isOpen())
+          tx.rollback();
       }
       catch (RuntimeException rbex)
       {
@@ -80,12 +83,8 @@
       }
       throw rte;
     }
-    finally
-    {
-      SessionAssociation.closeSession(session);
-    }
   }
-
+  
   private PersistenceService getPersistenceService(ProcessEngine engine)
   {
     if (service == null)

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ExecutionServiceImpl.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -122,9 +122,9 @@
     boolean startProcessThread = (rtProc == null);
 
     // Create initial Token
-    TokenImpl initialToken = new TokenImpl(att);
+    TokenImpl initialToken = new TokenImpl(getProcessEngine(), att);
     InitialFlow initialFlow = new InitialFlow(start);
-    initialToken.setFlow(initialFlow);
+    initialToken.setSequenceFlow(initialFlow);
 
     // Register the initial Token
     rtProc = getRuntimeProcess(proc, true);

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java	2008-10-31 10:49:02 UTC (rev 2702)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/HibernatePersistenceServiceImpl.java	2008-10-31 13:42:21 UTC (rev 2703)
@@ -35,6 +35,7 @@
 import org.hibernate.SessionFactory;
 import org.hibernate.Transaction;
 import org.hibernate.cfg.AnnotationConfiguration;
+import org.jbpm.api.NodeNotFoundException;
 import org.jbpm.api.ProcessNotFoundException;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Node;
@@ -178,7 +179,7 @@
     }
     catch (ObjectNotFoundException ex)
     {
-      throw new ProcessNotFoundException("Cannot find process: " + procID);
+      throw new ProcessNotFoundException("Cannot find process: " + procID, ex);
     }
     finally
     {
@@ -219,19 +220,19 @@
 
   @Override
   @SuppressWarnings("unchecked")
-  public <T extends Node> T loadNode(Session session, Class<T> nodeImpl, ObjectName nodeID)
+  public <T extends Node> T loadNode(Session session, Class<T> nodeClass, ObjectName nodeID)
   {
     log.debug("START loadNode: " + nodeID);
     T node = null;
     try
     {
       Integer id = Integer.valueOf(nodeID.getKeyProperty("id"));
-      node = (T)session.load(nodeImpl, id);
+      node = (T)session.load(nodeClass, id);
       Hibernate.initialize(node);
     }
     catch (ObjectNotFoundException ex)
     {
-      throw new ProcessNotFoundException("Cannot find node: " + nodeID);
+      throw new NodeNotFoundException("Cannot find node: " + nodeID, ex);
     }
     log.debug("END loadNode: " + nodeID);
     return node;




More information about the jbpm-commits mailing list