Author: ruwan
Date: Mon Oct 29 19:38:43 2007
New Revision: 589943
URL: http://svn.apache.org/viewvc?rev=589943&view=rev
Log:
Fixing an issue with Clone and Iterate to stop sending the blank http response
when the forked child messages are executing
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/IterateMediator.java
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java?rev=589943&r1=589942&r2=589943&view=diff
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java
Mon Oct 29 19:38:43 2007
@@ -20,11 +20,14 @@
package org.apache.synapse.mediators.eip.splitter;
import org.apache.synapse.MessageContext;
+import org.apache.synapse.core.axis2.Axis2MessageContext;
import org.apache.synapse.util.MessageHelper;
import org.apache.synapse.mediators.AbstractMediator;
import org.apache.synapse.mediators.eip.Target;
import org.apache.synapse.mediators.eip.EIPConstants;
import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
+import org.apache.axis2.context.OperationContext;
import java.util.ArrayList;
import java.util.List;
@@ -87,6 +90,14 @@
// finalize tracing and debugging
if (traceOrDebugOn) {
traceOrDebug(traceOn, "End : Clone mediator");
+ }
+
+ // if the continuation of the parent message is stopped from here set
the RESPONSE_WRITTEN
+ // property to SKIP to skip the blank http response
+ OperationContext opCtx
+ = ((Axis2MessageContext)
synCtx).getAxis2MessageContext().getOperationContext();
+ if (continueParent && opCtx != null) {
+ opCtx.setProperty(Constants.RESPONSE_WRITTEN,"SKIP");
}
// if continue parent is true mediators after the clone will be called
for the further
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/IterateMediator.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/IterateMediator.java?rev=589943&r1=589942&r2=589943&view=diff
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/IterateMediator.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/IterateMediator.java
Mon Oct 29 19:38:43 2007
@@ -24,12 +24,15 @@
import org.apache.synapse.mediators.eip.Target;
import org.apache.synapse.mediators.eip.EIPConstants;
import org.apache.synapse.MessageContext;
+import org.apache.synapse.core.axis2.Axis2MessageContext;
import org.apache.synapse.util.MessageHelper;
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axiom.om.xpath.AXIOMXPath;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMNode;
import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
+import org.apache.axis2.context.OperationContext;
import org.jaxen.JaxenException;
import java.util.List;
@@ -112,9 +115,8 @@
}
// iterate through the list
- for (Iterator itr = splitElements.iterator(); itr.hasNext();) {
+ for (Object o : splitElements) {
- Object o = itr.next();
// clone the message for the mediation in iteration
MessageContext newCtx =
MessageHelper.cloneMessageContext(synCtx);
// set the messageSequence property for possibal
aggreagtions
@@ -147,7 +149,7 @@
"Unable to get the attach path specified by
the expression " +
attachPath, synCtx);
}
- // if not preserve payload then attach the iteration
element to the body
+ // if not preserve payload then attach the iteration
element to the body
} else if (o instanceof OMNode && newEnvelope.getBody() !=
null) {
newEnvelope.getBody().addChild((OMNode) o);
}
@@ -175,6 +177,14 @@
// finalizing the tracing and logging on the iterate mediator
if (traceOrDebugOn) {
traceOrDebug(traceOn, "End : Iterate mediator");
+ }
+
+ // if the continuation of the parent message is stopped from here set
the RESPONSE_WRITTEN
+ // property to SKIP to skip the blank http response
+ OperationContext opCtx
+ = ((Axis2MessageContext)
synCtx).getAxis2MessageContext().getOperationContext();
+ if (continueParent && opCtx != null) {
+ opCtx.setProperty(Constants.RESPONSE_WRITTEN,"SKIP");
}
// whether to continue mediation on the original message
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]