You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by as...@apache.org on 2007/03/08 19:05:34 UTC

svn commit: r516123 - in /webservices/synapse/trunk/java/modules: core/src/main/java/org/apache/synapse/mediators/base/ core/src/test/java/org/apache/synapse/ core/src/test/java/org/apache/synapse/mediators/base/ extensions/src/test/java/org/apache/syn...

Author: asankha
Date: Thu Mar  8 10:05:33 2007
New Revision: 516123

URL: http://svn.apache.org/viewvc?view=rev&rev=516123
Log:
fix build break for sequence mediator error handling test

Modified:
    webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/base/SequenceMediator.java
    webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java
    webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/base/SequenceMediatorTest.java
    webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/TestMessageContext.java

Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/base/SequenceMediator.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/base/SequenceMediator.java?view=diff&rev=516123&r1=516122&r2=516123
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/base/SequenceMediator.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/base/SequenceMediator.java Thu Mar  8 10:05:33 2007
@@ -95,16 +95,22 @@
                         new MediatorFaultHandler(synCtx.getSequence(errorHandler)));
                 }
 
-                return super.mediate(synCtx);
+                boolean ret = super.mediate(synCtx);
 
-            } finally {
-
-                // pop our error handler from the fault stack if we pushed it
+                // pop our error handler from the fault stack before we exit, if we have pushed it
                 Stack faultStack = synCtx.getFaultStack();
-                if (errorHandler != null && !faultStack.isEmpty() &&
-                    synCtx.getSequence(errorHandler).equals(faultStack.peek())) {
-                    faultStack.pop();
+                if (errorHandler != null && !faultStack.isEmpty()) {
+                    Object o = faultStack.peek();
+                    if (o instanceof MediatorFaultHandler &&
+                        synCtx.getSequence(errorHandler).equals(
+                            ((MediatorFaultHandler) o).getFaultMediator())) {
+                        faultStack.pop();
+                    }
                 }
+
+                return ret;
+
+            } finally {
 
                 //If this sequence is finished it's task normally
                 if (isStatisticsEnable) {

Modified: webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java?view=diff&rev=516123&r1=516122&r2=516123
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java Thu Mar  8 10:05:33 2007
@@ -40,6 +40,8 @@
 
     private Map localEntries = new HashMap();
 
+    private Stack faultStack = new Stack();
+
     private SynapseConfiguration synCfg = null;
 
     SOAPEnvelope envelope = null;
@@ -253,10 +255,11 @@
     }
 
     public Stack getFaultStack() {
-        return null;
+        return faultStack;
     }
 
     public void pushFaultHandler(FaultHandler fault) {
+        faultStack.push(fault);
     }
 
     public MessageContext getSynapseContext() {

Modified: webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/base/SequenceMediatorTest.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/base/SequenceMediatorTest.java?view=diff&rev=516123&r1=516122&r2=516123
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/base/SequenceMediatorTest.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/base/SequenceMediatorTest.java Thu Mar  8 10:05:33 2007
@@ -23,6 +23,11 @@
 import org.apache.synapse.Constants;
 import org.apache.synapse.MessageContext;
 import org.apache.synapse.SynapseException;
+import org.apache.synapse.config.SynapseConfiguration;
+import org.apache.synapse.core.axis2.SynapseMessageReceiver;
+import org.apache.synapse.core.axis2.Axis2MessageContext;
+import org.apache.synapse.core.axis2.MessageContextCreatorForAxis2;
+import org.apache.synapse.core.axis2.Axis2SynapseEnvironment;
 import org.apache.synapse.mediators.TestMediateHandler;
 import org.apache.synapse.mediators.TestMediator;
 import org.apache.synapse.mediators.TestUtils;
@@ -96,6 +101,7 @@
             new TestMediateHandler() {
                 public void handle(MessageContext synCtx) {
                     result.append("T4");
+                    assertEquals("test", synCtx.getProperty(Constants.ERROR_MESSAGE));
                 }
             });
 
@@ -110,13 +116,18 @@
         seqErr.addChild(t4);
 
         // invoke transformation, with static enveope
-        MessageContext synCtx = TestUtils.getTestContext("<empty/>");
-        synCtx.getConfiguration().addSequence("myErrorHandler", seqErr);
+        SynapseConfiguration synConfig = new SynapseConfiguration();
+        synConfig.addSequence("myErrorHandler", seqErr);
+        synConfig.addSequence(Constants.MAIN_SEQUENCE_KEY, seq);
+
+        MessageContextCreatorForAxis2.setSynConfig(synConfig);
+        MessageContextCreatorForAxis2.setSynEnv(new Axis2SynapseEnvironment());
+        org.apache.axis2.context.MessageContext mc =
+            new org.apache.axis2.context.MessageContext();
+        mc.setEnvelope(TestUtils.getTestContext("<empty/>").getEnvelope());
 
-        seq.mediate(synCtx);
+        new SynapseMessageReceiver().receive(mc);
 
         assertTrue("T1.T2.T4".equals(result.toString()));
-
-        assertEquals("test", synCtx.getProperty(Constants.ERROR_MESSAGE));
     }
 }

Modified: webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/TestMessageContext.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/TestMessageContext.java?view=diff&rev=516123&r1=516122&r2=516123
==============================================================================
--- webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/TestMessageContext.java (original)
+++ webservices/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/TestMessageContext.java Thu Mar  8 10:05:33 2007
@@ -40,6 +40,8 @@
 
     private Map localEntries = new HashMap();
 
+    private Stack faultStack = new Stack();
+
     private SynapseConfiguration synCfg = null;
 
     SOAPEnvelope envelope = null;
@@ -267,10 +269,10 @@
     }
 
     public Stack getFaultStack() {
-        return null;
+        return faultStack;
     }
 
     public void pushFaultHandler(FaultHandler fault) {
-        return;
+        faultStack.push(fault);
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org