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);
+        }
     }
 
     /**


Reply via email to