You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mr...@apache.org on 2008/08/20 20:18:15 UTC
svn commit: r687405 -
/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/INVOKE.java
Author: mriou
Date: Wed Aug 20 11:18:14 2008
New Revision: 687405
URL: http://svn.apache.org/viewvc?rev=687405&view=rev
Log:
ODE-263 onAlarm is trigered only after completed activity
Modified:
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/INVOKE.java
Modified: ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/INVOKE.java
URL: http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/INVOKE.java?rev=687405&r1=687404&r2=687405&view=diff
==============================================================================
--- ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/INVOKE.java (original)
+++ ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/INVOKE.java Wed Aug 20 11:18:14 2008
@@ -95,13 +95,13 @@
} else /* two-way */{
final VariableInstance outputVar = _scopeFrame.resolve(_oinvoke.outputVar);
- InvokeResponseChannel invokeResponseChannel = newChannel(InvokeResponseChannel.class);
+ final InvokeResponseChannel invokeResponseChannel = newChannel(InvokeResponseChannel.class);
final String mexId = getBpelRuntimeContext().invoke(
_scopeFrame.resolve(_oinvoke.partnerLink), _oinvoke.operation,
outboundMsg, invokeResponseChannel);
- object(new InvokeResponseChannelListener(invokeResponseChannel) {
+ object(false, new InvokeResponseChannelListener(invokeResponseChannel) {
private static final long serialVersionUID = 4496880438819196765L;
public void onResponse() {
@@ -183,7 +183,28 @@
_self.parent.failure(getBpelRuntimeContext().getPartnerFaultExplanation(mexId), null);
getBpelRuntimeContext().releasePartnerMex(mexId);
}
- });
+
+ }.or(new TerminationChannelListener(_self.self) {
+ private static final long serialVersionUID = 4219496341785922396L;
+
+ public void terminate() {
+ _self.parent.completed(null, CompensationHandler.emptySet());
+ object(new InvokeResponseChannelListener(invokeResponseChannel) {
+ private static final long serialVersionUID = 688746737897792929L;
+ public void onFailure() {
+ __log.debug("Failure on invoke ignored, the invoke has already been terminated: " + _oinvoke.toString());
+ }
+ public void onFault() {
+ __log.debug("Fault on invoke ignored, the invoke has already been terminated: " + _oinvoke.toString());
+ }
+ public void onResponse() {
+ __log.debug("Response on invoke ignored, the invoke has already been terminated: " + _oinvoke.toString());
+ }
+
+ });
+ }
+ }));
+;
}
} catch (FaultException fault) {
__log.error(fault);