Author: hiranya
Date: Mon Aug  8 05:07:28 2011
New Revision: 1154823

URL: http://svn.apache.org/viewvc?rev=1154823&view=rev
Log:
Fixing SYNAPSE-780

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java?rev=1154823&r1=1154822&r2=1154823&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java
 Mon Aug  8 05:07:28 2011
@@ -211,6 +211,7 @@ public class XSLTMediator extends Abstra
         OMNode sourceNode = source.selectOMNode(synCtx, synLog);
         boolean isSoapEnvelope = (sourceNode == synCtx.getEnvelope());
         boolean isSoapBody = (sourceNode == synCtx.getEnvelope().getBody());
+        boolean isSoapHeader = (sourceNode == 
synCtx.getEnvelope().getHeader());
 
         // Derive actual key from message context
         String generatedXsltKey = xsltKey.evaluateValue(synCtx);
@@ -332,6 +333,18 @@ public class XSLTMediator extends Abstra
                         synCtx.getEnvelope().getBody().addChild(child);
                     }
 
+                } else if (isSoapHeader) {
+                    for (Iterator itr = 
synCtx.getEnvelope().getHeader().getChildElements();
+                         itr.hasNext();) {
+                                               OMElement child = (OMElement) 
itr.next();
+                                               child.detach();
+                                       }
+
+                                       for (Iterator itr = 
result.getChildElements(); itr.hasNext();) {
+                                               OMElement child = (OMElement) 
itr.next();
+                                               
synCtx.getEnvelope().getHeader().addChild(child);
+                                       }
+
                 } else {
                     sourceNode.insertSiblingAfter(result);
                     sourceNode.detach();


Reply via email to