Author: ruwan
Date: Thu Feb 25 19:42:36 2010
New Revision: 916422

URL: http://svn.apache.org/viewvc?rev=916422&view=rev
Log:
Applying the patch for SYNAPSE-614, committing for Supun

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/PropertyMediator.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/xpath/SynapseXPathVariableContext.java
    
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientWorker.java
    
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerWorker.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/PropertyMediator.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/PropertyMediator.java?rev=916422&r1=916421&r2=916422&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/PropertyMediator.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/PropertyMediator.java
 Thu Feb 25 19:42:36 2010
@@ -137,7 +137,7 @@
                         
org.apache.axis2.context.MessageContext.TRANSPORT_HEADERS);
 
                 if (headers != null && headers instanceof Map) {
-                    Map headersMap = (HashMap) headers;
+                    Map headersMap = (Map) headers;
                     headersMap.put(name, resultValue);
                 }
                 if (headers == null) {
@@ -181,7 +181,7 @@
                 Object headers = axis2MessageCtx.getProperty(
                         
org.apache.axis2.context.MessageContext.TRANSPORT_HEADERS);
                 if (headers != null && headers instanceof Map) {
-                    Map headersMap = (HashMap) headers;
+                    Map headersMap = (Map) headers;
                     headersMap.remove(name);
                 } else {
                     synLog.traceOrDebug("No transport headers found for the 
message");

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java?rev=916422&r1=916421&r2=916422&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java
 Thu Feb 25 19:42:36 2010
@@ -142,14 +142,23 @@
 
     public static Map 
getClonedTransportHeaders(org.apache.axis2.context.MessageContext msgCtx) {
         
-        Map headers = (Map) msgCtx.getProperty(
-                org.apache.axis2.context.MessageContext.TRANSPORT_HEADERS);
-        Map<String, Object> clonedHeaders = new HashMap<String, Object>();
+        Map headers = (Map) msgCtx.
+                
getProperty(org.apache.axis2.context.MessageContext.TRANSPORT_HEADERS);
+        Map<String, String> clonedHeaders;
+        if (headers instanceof TreeMap) {
+            clonedHeaders = new TreeMap<String, String>(new 
Comparator<String>() {
+                public int compare(String s1, String s2) {
+                    return s1.compareToIgnoreCase(s2);
+                }
+            });
+        } else {
+            clonedHeaders = new HashMap<String, String>();
+        }
 
-        if (headers != null && headers.isEmpty()) {
+        if (headers != null && !headers.isEmpty()) {
             for (Object o : headers.keySet()) {
                 String headerName = (String) o;
-                clonedHeaders.put(headerName, headers.get(headerName));
+                clonedHeaders.put(headerName, (String) 
headers.get(headerName));
             }
         }
 

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/xpath/SynapseXPathVariableContext.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/xpath/SynapseXPathVariableContext.java?rev=916422&r1=916421&r2=916422&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/xpath/SynapseXPathVariableContext.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/xpath/SynapseXPathVariableContext.java
 Thu Feb 25 19:42:36 2010
@@ -177,7 +177,7 @@
                                 for (String param : params) {
                                     String temp[] = param.split("=");
                                     if (temp != null && temp.length >= 1) {
-                                        if (temp[0].equals(localName)) {
+                                        if 
(temp[0].equalsIgnoreCase(localName)) {
                                             try {
                                                 return temp.length > 1 ?
                                                         
URIEncoderDecoder.decode(temp[1]) : "";

Modified: 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientWorker.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientWorker.java?rev=916422&r1=916421&r2=916422&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientWorker.java
 (original)
+++ 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientWorker.java
 Thu Feb 25 19:42:36 2010
@@ -42,8 +42,10 @@
 import javax.xml.stream.XMLStreamException;
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.TreeMap;
 
 /**
  * Performs processing of the HTTP response received for our outgoing request. 
An instance of this
@@ -118,7 +120,14 @@
             // set any transport headers received
             Header[] headers = response.getAllHeaders();
             if (headers != null && headers.length > 0) {
-                Map headerMap = new HashMap();
+
+                Map<String, String> headerMap
+                        = new TreeMap<String, String>(new Comparator<String>() 
{
+                    public int compare(String o1, String o2) {
+                        return o1.compareToIgnoreCase(o2);
+                    }
+                });
+                
                 for (int i=0; i<headers.length; i++) {
                     Header header = headers[i];
                     if ("Location".equals(header.getName())

Modified: 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerWorker.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerWorker.java?rev=916422&r1=916421&r2=916422&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerWorker.java
 (original)
+++ 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerWorker.java
 Thu Feb 25 19:42:36 2010
@@ -161,7 +161,13 @@
         msgContext.setProperty(
             Constants.Configuration.TRANSPORT_IN_URL, 
request.getRequestLine().getUri());
 
-        Map<String, String> headers = new HashMap<String, String>();
+        // http transport header names are case insensitive 
+        Map<String, String> headers = new TreeMap<String, String>(new 
Comparator<String>() {
+            public int compare(String o1, String o2) {
+                return o1.compareToIgnoreCase(o2);
+            }
+        });
+        
         for (Header header : request.getAllHeaders()) {
             headers.put(header.getName(), header.getValue());
         }


Reply via email to