You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by ms...@apache.org on 2007/08/15 19:26:51 UTC

svn commit: r566275 - /ode/branches/bart/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java

Author: mszefler
Date: Wed Aug 15 10:26:50 2007
New Revision: 566275

URL: http://svn.apache.org/viewvc?view=rev&rev=566275
Log:
BART: Fixed broken recoverActivity.

Modified:
    ode/branches/bart/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java

Modified: ode/branches/bart/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
URL: http://svn.apache.org/viewvc/ode/branches/bart/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java?view=diff&rev=566275&r1=566274&r2=566275
==============================================================================
--- ode/branches/bart/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java (original)
+++ ode/branches/bart/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java Wed Aug 15 10:26:50 2007
@@ -174,13 +174,24 @@
         return "BpelProcess[" + _pid + "]";
     }
 
-    void recoverActivity(ProcessInstanceDAO instanceDAO, String channel, long activityId, String action, FaultData fault) {
+    void recoverActivity(ProcessInstanceDAO instanceDAO, final String channel, final long activityId, final String action, final FaultData fault) {
         if (__log.isDebugEnabled())
             __log.debug("Recovering activity in process " + instanceDAO.getInstanceId() + " with action " + action);
         markused();
-        throw new AssertionError("TODO: fixme");// TODO
-        // BpelRuntimeContextImpl processInstance = createRuntimeContext(instanceDAO, null, null);
-        // processInstance.recoverActivity(channel, activityId, action, fault);
+        BpelInstanceWorker iworker = _instanceWorkerCache.get(instanceDAO.getInstanceId());
+        final BpelRuntimeContextImpl processInstance = new BpelRuntimeContextImpl(iworker,instanceDAO);
+        try {
+            iworker.execInCurrentThread(new Callable<Void> () {
+
+                public Void call() throws Exception {
+                    processInstance.recoverActivity(channel, activityId, action, fault);
+                    return null;
+                }
+                
+            });
+        } catch (Exception e) {
+            throw new BpelEngineException(e);
+        }
     }
 
     /**