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);