[prev in list] [next in list] [prev in thread] [next in thread] 

List:       synapse-dev
Subject:    svn commit: r480916 -
From:       asankha () apache ! org
Date:       2006-11-30 13:33:33
Message-ID: 20061130133334.6A8511A9846 () eris ! apache ! org
[Download RAW message or body]

Author: asankha
Date: Thu Nov 30 05:33:26 2006
New Revision: 480916

URL: http://svn.apache.org/viewvc?view=rev&rev=480916
Log:
workaround for issue with addressing

Modified:
    incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java


Modified: incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
                
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/main/j \
ava/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java?view=diff&rev=480916&r1=480915&r2=480916
 ==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java \
                (original)
+++ incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java \
Thu Nov 30 05:33:26 2006 @@ -23,6 +23,7 @@
 import org.apache.axiom.soap.SOAPHeader;
 import org.apache.axiom.soap.SOAPHeaderBlock;
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNamespace;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.addressing.AddressingConstants;
 import org.apache.axis2.client.OperationClient;
@@ -236,10 +237,22 @@
      * @param headerInformation headers to be removed
      */
     private static void detachAddressingInformation(ArrayList headerInformation) {
-        Iterator iterator = headerInformation.iterator();
-        while (iterator.hasNext()) {
-            SOAPHeaderBlock headerBlock = (SOAPHeaderBlock) iterator.next();
-            headerBlock.detach();
-        }
-    }
+       Iterator iterator = headerInformation.iterator();
+       while (iterator.hasNext()) {
+           Object o = iterator.next();
+           if (o instanceof SOAPHeaderBlock) {
+               SOAPHeaderBlock headerBlock = (SOAPHeaderBlock) o;
+               headerBlock.detach();
+           } else if (o instanceof OMElement) {
+               // work around for a known addressing bug which sends non \
SOAPHeaderBlock objects +               OMElement om = (OMElement) o;
+               OMNamespace ns = om.getNamespace();
+               if (ns != null &&
+                       \
(AddressingConstants.Submission.WSA_NAMESPACE.equals(ns.getNamespaceURI()) +          \
|| AddressingConstants.Final.WSA_NAMESPACE.equals(ns.getNamespaceURI()))) { +         \
om.detach(); +               }
+           }
+       }
+   } 
 }



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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic