You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by ka...@apache.org on 2009/01/08 02:18:06 UTC

svn commit: r732580 - in /ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep: v1/CompensationHandler.java v1/SCOPE.java v1/SEQUENCE.java v2/CompensationHandler.java v2/SCOPE.java v2/SEQUENCE.java

Author: karthick
Date: Wed Jan  7 17:18:05 2009
New Revision: 732580

URL: http://svn.apache.org/viewvc?rev=732580&view=rev
Log:
Respect the order defined by control dependencies during compensation (see section 12.5.2 of the spec).

Modified:
    ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/CompensationHandler.java
    ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/SCOPE.java
    ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/SEQUENCE.java
    ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/CompensationHandler.java
    ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPE.java
    ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/SEQUENCE.java

Modified: ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/CompensationHandler.java
URL: http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/CompensationHandler.java?rev=732580&r1=732579&r2=732580&view=diff
==============================================================================
--- ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/CompensationHandler.java (original)
+++ ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/CompensationHandler.java Wed Jan  7 17:18:05 2009
@@ -28,7 +28,7 @@
 /**
  * A handle to a compensation handler.
  */
-public class CompensationHandler implements Serializable {
+public class CompensationHandler implements Serializable, Comparable<CompensationHandler> {
     private static final long serialVersionUID = 1L;
 
     /** The scope to which this compensation handler belongs. */
@@ -65,4 +65,7 @@
         return Collections.emptySet();
     }
 
+    public int compareTo(CompensationHandler that) {
+    	return (int) (that.scopeEndTime - this.scopeEndTime);
+    }
 }

Modified: ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/SCOPE.java
URL: http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/SCOPE.java?rev=732580&r1=732579&r2=732580&view=diff
==============================================================================
--- ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/SCOPE.java (original)
+++ ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/SCOPE.java Wed Jan  7 17:18:05 2009
@@ -33,16 +33,7 @@
 import org.apache.ode.bpel.evt.ScopeFaultEvent;
 import org.apache.ode.bpel.evt.ScopeStartEvent;
 import org.apache.ode.bpel.evt.VariableModificationEvent;
-import org.apache.ode.bpel.rtrep.v1.OBase;
-import org.apache.ode.bpel.rtrep.v1.OCatch;
-import org.apache.ode.bpel.rtrep.v1.OElementVarType;
-import org.apache.ode.bpel.rtrep.v1.OEventHandler;
-import org.apache.ode.bpel.rtrep.v1.OFailureHandling;
-import org.apache.ode.bpel.rtrep.v1.OFaultHandler;
-import org.apache.ode.bpel.rtrep.v1.OLink;
-import org.apache.ode.bpel.rtrep.v1.OMessageVarType;
-import org.apache.ode.bpel.rtrep.v1.OScope;
-import org.apache.ode.bpel.rtrep.v1.OVarType;
+import org.apache.ode.bpel.rapi.InvalidProcessException;
 import org.apache.ode.bpel.rtrep.v1.channels.CompensationChannel;
 import org.apache.ode.bpel.rtrep.v1.channels.EventHandlerControlChannel;
 import org.apache.ode.bpel.rtrep.v1.channels.FaultData;
@@ -50,7 +41,6 @@
 import org.apache.ode.bpel.rtrep.v1.channels.ParentScopeChannelListener;
 import org.apache.ode.bpel.rtrep.v1.channels.TerminationChannel;
 import org.apache.ode.bpel.rtrep.v1.channels.TerminationChannelListener;
-import org.apache.ode.bpel.rapi.InvalidProcessException;
 import org.apache.ode.jacob.ChannelListener;
 import org.apache.ode.jacob.SynchChannel;
 import org.w3c.dom.Element;
@@ -116,7 +106,8 @@
             if (null == scope || ch.compensated.oscope.equals(scope))
                 out.add(ch);
         }
-        // TODO: sort out in terms of completion order
+        // sort out in terms of completion order
+        Collections.sort(out);
         return out;
     }
 

Modified: ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/SEQUENCE.java
URL: http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/SEQUENCE.java?rev=732580&r1=732579&r2=732580&view=diff
==============================================================================
--- ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/SEQUENCE.java (original)
+++ ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/SEQUENCE.java Wed Jan  7 17:18:05 2009
@@ -18,22 +18,19 @@
  */
 package org.apache.ode.bpel.rtrep.v1;
 
-import org.apache.ode.bpel.rtrep.v1.OActivity;
-import org.apache.ode.bpel.rtrep.v1.OScope;
-import org.apache.ode.bpel.rtrep.v1.OSequence;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+
 import org.apache.ode.bpel.rtrep.v1.channels.FaultData;
 import org.apache.ode.bpel.rtrep.v1.channels.ParentScopeChannel;
 import org.apache.ode.bpel.rtrep.v1.channels.ParentScopeChannelListener;
 import org.apache.ode.bpel.rtrep.v1.channels.TerminationChannel;
 import org.apache.ode.bpel.rtrep.v1.channels.TerminationChannelListener;
 import org.apache.ode.jacob.SynchChannel;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
 import org.w3c.dom.Element;
 
 /**
@@ -99,7 +96,7 @@
                 }
 
                 public void completed(FaultData faultData, Set<CompensationHandler> compensations) {
-                    HashSet<CompensationHandler> comps = new HashSet<CompensationHandler>(_compensations);
+                    TreeSet<CompensationHandler> comps = new TreeSet<CompensationHandler>(_compensations);
                     comps.addAll(compensations);
                     if (faultData != null || _terminateRequested || _remaining.size() <= 1) {
                         deadPathRemaining(_remaining);

Modified: ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/CompensationHandler.java
URL: http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/CompensationHandler.java?rev=732580&r1=732579&r2=732580&view=diff
==============================================================================
--- ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/CompensationHandler.java (original)
+++ ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/CompensationHandler.java Wed Jan  7 17:18:05 2009
@@ -28,7 +28,7 @@
 /**
  * A handle to a compensation handler.
  */
-public class CompensationHandler implements Serializable {
+public class CompensationHandler implements Serializable, Comparable<CompensationHandler> {
 	private static final long serialVersionUID = 1L;
 
 	/** The scope to which this compensation handler belongs. */
@@ -65,4 +65,7 @@
     return Collections.emptySet();
   }
 
+  public int compareTo(CompensationHandler that) {
+	return (int) (that.scopeEndTime - this.scopeEndTime);
+  }
 }

Modified: ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPE.java
URL: http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPE.java?rev=732580&r1=732579&r2=732580&view=diff
==============================================================================
--- ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPE.java (original)
+++ ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPE.java Wed Jan  7 17:18:05 2009
@@ -33,6 +33,7 @@
 import org.apache.ode.bpel.evt.ScopeFaultEvent;
 import org.apache.ode.bpel.evt.ScopeStartEvent;
 import org.apache.ode.bpel.evt.VariableModificationEvent;
+import org.apache.ode.bpel.rapi.InvalidProcessException;
 import org.apache.ode.bpel.rtrep.v2.channels.CompensationChannel;
 import org.apache.ode.bpel.rtrep.v2.channels.EventHandlerControlChannel;
 import org.apache.ode.bpel.rtrep.v2.channels.FaultData;
@@ -40,7 +41,6 @@
 import org.apache.ode.bpel.rtrep.v2.channels.ParentScopeChannelListener;
 import org.apache.ode.bpel.rtrep.v2.channels.TerminationChannel;
 import org.apache.ode.bpel.rtrep.v2.channels.TerminationChannelListener;
-import org.apache.ode.bpel.rapi.InvalidProcessException;
 import org.apache.ode.jacob.ChannelListener;
 import org.apache.ode.jacob.SynchChannel;
 import org.w3c.dom.Element;
@@ -104,7 +104,8 @@
             if (null == scope || ch.compensated.oscope.equals(scope))
                 out.add(ch);
         }
-        // TODO: sort out in terms of completion order
+        // sort out in terms of completion order
+        Collections.sort(out);
         return out;
     }
 

Modified: ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/SEQUENCE.java
URL: http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/SEQUENCE.java?rev=732580&r1=732579&r2=732580&view=diff
==============================================================================
--- ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/SEQUENCE.java (original)
+++ ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/SEQUENCE.java Wed Jan  7 17:18:05 2009
@@ -18,19 +18,19 @@
  */
 package org.apache.ode.bpel.rtrep.v2;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+
 import org.apache.ode.bpel.rtrep.v2.channels.FaultData;
 import org.apache.ode.bpel.rtrep.v2.channels.ParentScopeChannel;
 import org.apache.ode.bpel.rtrep.v2.channels.ParentScopeChannelListener;
 import org.apache.ode.bpel.rtrep.v2.channels.TerminationChannel;
 import org.apache.ode.bpel.rtrep.v2.channels.TerminationChannelListener;
 import org.apache.ode.jacob.SynchChannel;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
 import org.w3c.dom.Element;
 
 /**
@@ -97,7 +97,7 @@
                 }
 
                 public void completed(FaultData faultData, Set<CompensationHandler> compensations) {
-                    HashSet<CompensationHandler> comps = new HashSet<CompensationHandler>(_compensations);
+                    TreeSet<CompensationHandler> comps = new TreeSet<CompensationHandler>(_compensations);
                     comps.addAll(compensations);
                     if (faultData != null || _terminateRequested || _remaining.size() <= 1) {
                         deadPathRemaining(_remaining);