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 13:33:57 UTC

svn commit: r516024 - in /webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators: builtin/LogMediator.java transform/HeaderMediator.java

Author: asankha
Date: Thu Mar  8 04:33:56 2007
New Revision: 516024

URL: http://svn.apache.org/viewvc?view=rev&rev=516024
Log:
Axis2 has a strange behaviour where some of the headers returned from getEnvelope().getHeader().examineAllHeaderBlocks() returns raw OMElements and not only SOAPHeaderBlock's - make our code resilient

Modified:
    webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LogMediator.java
    webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/HeaderMediator.java

Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LogMediator.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LogMediator.java?view=diff&rev=516024&r1=516023&r2=516024
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LogMediator.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/LogMediator.java Thu Mar  8 04:33:56 2007
@@ -20,6 +20,7 @@
 package org.apache.synapse.mediators.builtin;
 
 import org.apache.axiom.soap.SOAPHeaderBlock;
+import org.apache.axiom.om.OMElement;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.synapse.Constants;
@@ -119,8 +120,14 @@
         StringBuffer sb = new StringBuffer();
         Iterator iter = synCtx.getEnvelope().getHeader().examineAllHeaderBlocks();
         while (iter.hasNext()) {
-            SOAPHeaderBlock headerBlock = (SOAPHeaderBlock) iter.next();
-            sb.append(separator + headerBlock.getLocalName() + " : " + headerBlock.getText());
+            Object o = iter.next();
+            if (o instanceof SOAPHeaderBlock) {
+                SOAPHeaderBlock header = (SOAPHeaderBlock) o;
+                sb.append(separator + header.getLocalName() + " : " + header.getText());
+            } else if (o instanceof OMElement) {
+                OMElement headerElem = (OMElement) o;
+                sb.append(separator + headerElem.getLocalName() + " : " + headerElem.getText());
+            }
         }
         setCustomProperties(sb, synCtx);
         return trimLeadingSeparator(sb);

Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/HeaderMediator.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/HeaderMediator.java?view=diff&rev=516024&r1=516023&r2=516024
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/HeaderMediator.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/HeaderMediator.java Thu Mar  8 04:33:56 2007
@@ -20,6 +20,7 @@
 package org.apache.synapse.mediators.transform;
 
 import org.apache.axiom.om.xpath.AXIOMXPath;
+import org.apache.axiom.om.OMElement;
 import org.apache.axiom.soap.SOAPHeaderBlock;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -131,9 +132,17 @@
         
         Iterator iter = headersList.iterator();
         while (iter.hasNext()) {
-            SOAPHeaderBlock header = (SOAPHeaderBlock) iter.next();
-            if (header.getLocalName().equals(qName.getLocalPart())) {
-                header.detach();
+            Object o = iter.next();
+            if (o instanceof SOAPHeaderBlock) {
+                SOAPHeaderBlock header = (SOAPHeaderBlock) o;
+                if (header.getLocalName().equals(qName.getLocalPart())) {
+                    header.detach();
+                }
+            } else if (o instanceof OMElement) {
+                OMElement omElem = (OMElement) o;
+                if (omElem.getLocalName().equals(qName.getLocalPart())) {
+                    omElem.detach();
+                }
             }
         }
     }



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