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:17:49 UTC

svn commit: r732579 - in /ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime: CompensationHandler.java SCOPE.java SEQUENCE.java

Author: karthick
Date: Wed Jan  7 17:17:49 2009
New Revision: 732579

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

Modified:
    ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/CompensationHandler.java
    ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPE.java
    ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SEQUENCE.java

Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/CompensationHandler.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/CompensationHandler.java?rev=732579&r1=732578&r2=732579&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/CompensationHandler.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/CompensationHandler.java Wed Jan  7 17:17:49 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,8 @@
     return Collections.emptySet();
   }
 
+  public int compareTo(CompensationHandler that) {
+	return (int) (that.scopeEndTime - this.scopeEndTime);
+  }
+
 }

Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPE.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPE.java?rev=732579&r1=732578&r2=732579&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPE.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPE.java Wed Jan  7 17:17:49 2009
@@ -117,7 +117,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/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SEQUENCE.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SEQUENCE.java?rev=732579&r1=732578&r2=732579&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SEQUENCE.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SEQUENCE.java Wed Jan  7 17:17:49 2009
@@ -34,6 +34,8 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
+import java.util.TreeSet;
+
 import org.w3c.dom.Element;
 
 /**
@@ -99,7 +101,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);