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/java/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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to