You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by hi...@apache.org on 2010/04/30 08:21:01 UTC
svn commit: r939564 -
/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
Author: hiranya
Date: Fri Apr 30 06:21:00 2010
New Revision: 939564
URL: http://svn.apache.org/viewvc?rev=939564&view=rev
Log:
Fixing SYNAPSE-630 (Patch provided by Rajika)
With this fix, the fault sequence is invoked whenever a proxy service encounters an error in the out-sequence.
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java?rev=939564&r1=939563&r2=939564&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java Fri Apr 30 06:21:00 2010
@@ -36,6 +36,8 @@ import org.apache.sandesha2.client.Sande
import org.apache.synapse.FaultHandler;
import org.apache.synapse.SynapseConstants;
import org.apache.synapse.SynapseException;
+import org.apache.synapse.Mediator;
+import org.apache.synapse.mediators.MediatorFaultHandler;
import org.apache.synapse.aspects.statistics.ErrorLogFactory;
import org.apache.synapse.aspects.statistics.StatisticsReporter;
import org.apache.synapse.config.SynapseConfigUtils;
@@ -326,6 +328,35 @@ public class SynapseCallbackReceiver imp
(String) key, synapseOutMsgCtx.getProperty((String) key));
}
+ Object proxyName = synapseOutMsgCtx.getProperty(SynapseConstants.PROXY_SERVICE);
+ if (proxyName != null) {
+ ProxyService proxy = synapseOutMsgCtx.getConfiguration().
+ getProxyService((String) proxyName);
+
+ if (proxy.getTargetFaultSequence() != null) {
+ Mediator faultSequence = synapseOutMsgCtx.getSequence(
+ proxy.getTargetFaultSequence());
+ if (faultSequence != null) {
+ synapseInMessageContext.pushFaultHandler(
+ new MediatorFaultHandler(faultSequence));
+ } else {
+ log.warn("Cloud not find any fault-sequence named :" +
+ proxy.getTargetFaultSequence() + "; Setting the deafault" +
+ " fault sequence for out path");
+ synapseInMessageContext.pushFaultHandler(new MediatorFaultHandler(
+ synapseInMessageContext.getFaultSequence()));
+ }
+
+ } else if (proxy.getTargetInLineFaultSequence() != null) {
+ synapseInMessageContext.pushFaultHandler(
+ new MediatorFaultHandler(proxy.getTargetInLineFaultSequence()));
+
+ } else {
+ synapseInMessageContext.pushFaultHandler(new MediatorFaultHandler(
+ synapseInMessageContext.getFaultSequence()));
+ }
+ }
+
// If this response is related to session affinity endpoints -Server initiated session
Dispatcher dispatcher =
(Dispatcher) synapseOutMsgCtx.getProperty(