You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ni...@apache.org on 2007/12/04 08:13:11 UTC

svn commit: r600814 - in /incubator/cxf/branches/2.0.x-fixes: ./ common/common/src/main/java/org/apache/cxf/helpers/ common/common/src/test/java/org/apache/cxf/helpers/ rt/core/src/main/java/org/apache/cxf/bus/extension/ rt/core/src/test/java/org/apach...

Author: ningjiang
Date: Mon Dec  3 23:13:10 2007
New Revision: 600814

URL: http://svn.apache.org/viewvc?rev=600814&view=rev
Log:
Merged revisions 600115-600506,600508-600671,600673-600685,600687-600700,600702-600726,600728-600799 via svnmerge from 
https://svn.apache.org/repos/asf/incubator/cxf/trunk

........
  r600115 | mmao | 2007-12-01 21:13:34 +0800 (Sat, 01 Dec 2007) | 3 lines
  
  * Update the version
........
  r600138 | mmao | 2007-12-01 22:14:03 +0800 (Sat, 01 Dec 2007) | 3 lines
  
  Remove the jdee plugin, moved to http://code.google.com/p/m2jdee/
........
  r600749 | bimargulies | 2007-12-04 08:44:10 +0800 (Tue, 04 Dec 2007) | 2 lines
  
  Fix 1227 some more, and don't just ignore bogus charsets. Complain.
........
  r600756 | bimargulies | 2007-12-04 09:01:16 +0800 (Tue, 04 Dec 2007) | 2 lines
  
  Don't yammer if there is no charset at all, only if there's an incomprehensible one.
........
  r600757 | bimargulies | 2007-12-04 09:04:30 +0800 (Tue, 04 Dec 2007) | 2 lines
  
  And while here, why not lose a fight with PMD?
........
  r600758 | bimargulies | 2007-12-04 09:12:02 +0800 (Tue, 04 Dec 2007) | 2 lines
  
  Get unit test into sync.
........
  r600761 | bimargulies | 2007-12-04 09:17:54 +0800 (Tue, 04 Dec 2007) | 2 lines
  
  keep trying to check in something trivial..
........
  r600799 | ningjiang | 2007-12-04 14:17:10 +0800 (Tue, 04 Dec 2007) | 1 line
  
  Fixed the extensionManagerTest testActivateViaNS
........

Removed:
    incubator/cxf/branches/2.0.x-fixes/tools/jdee/
Modified:
    incubator/cxf/branches/2.0.x-fixes/   (props changed)
    incubator/cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java
    incubator/cxf/branches/2.0.x-fixes/common/common/src/test/java/org/apache/cxf/helpers/HttpHeaderHelperTest.java
    incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java
    incubator/cxf/branches/2.0.x-fixes/rt/core/src/test/java/org/apache/cxf/bus/extension/ExtensionManagerTest.java
    incubator/cxf/branches/2.0.x-fixes/rt/core/src/test/java/org/apache/cxf/bus/extension/MySetterService.java
    incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
    incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties
    incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java
    incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
    incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Messages.properties
    incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/Messages.properties
    incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java

Propchange: incubator/cxf/branches/2.0.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: incubator/cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java?rev=600814&r1=600813&r2=600814&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/common/common/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java Mon Dec  3 23:13:10 2007
@@ -28,7 +28,6 @@
 import java.util.concurrent.ConcurrentHashMap;
 
 public final class HttpHeaderHelper {
-    
     public static final String CONTENT_TYPE = "Content-Type";
     public static final String CONTENT_ID = "Content-ID";
     public static final String CONTENT_TRANSFER_ENCODING = "Content-Transfer-Encoding";
@@ -38,6 +37,7 @@
     public static final String CONNECTION = "Connection";
     public static final String CLOSE = "close";
     public static final String AUTHORIZATION = "Authorization";
+    private static final Charset UTF8 = Charset.forName("utf-8"); 
 
     
     private static Map<String, String> internalHeaders = new HashMap<String, String>();
@@ -72,7 +72,14 @@
     //into something that is actually supported by Java and the Stax parsers and such.
     public static String mapCharset(String enc) {
         if (enc == null) {
-            return null;
+            return UTF8.name();
+        }
+        // Charsets can be quoted. But it's quite certain that they can't have escaped quoted or
+        // anything like that.
+        enc = enc.replace("\"", "");
+        enc = enc.replace("'", "");
+        if ("".equals(enc)) {
+            return UTF8.name();
         }
         String newenc = encodings.get(enc);
         if (newenc == null) {

Modified: incubator/cxf/branches/2.0.x-fixes/common/common/src/test/java/org/apache/cxf/helpers/HttpHeaderHelperTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/common/common/src/test/java/org/apache/cxf/helpers/HttpHeaderHelperTest.java?rev=600814&r1=600813&r2=600814&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/common/common/src/test/java/org/apache/cxf/helpers/HttpHeaderHelperTest.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/common/common/src/test/java/org/apache/cxf/helpers/HttpHeaderHelperTest.java Mon Dec  3 23:13:10 2007
@@ -22,8 +22,6 @@
 import java.nio.charset.Charset;
 import org.junit.Test;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-
 
 /**
  * 
@@ -35,7 +33,11 @@
         String cs = HttpHeaderHelper.mapCharset("utf-8");
         assertEquals(Charset.forName("utf-8").name(), cs);
         cs = HttpHeaderHelper.mapCharset(null);
-        assertNull(cs);
+        assertEquals("UTF-8", cs);
+        cs = HttpHeaderHelper.mapCharset("\"utf-8\"");
+        assertEquals(Charset.forName("utf-8").name(), cs);
+        cs = HttpHeaderHelper.mapCharset("'utf-8'");
+        assertEquals(Charset.forName("utf-8").name(), cs);
     }
 
 }

Modified: incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java?rev=600814&r1=600813&r2=600814&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/rt/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java Mon Dec  3 23:13:10 2007
@@ -21,6 +21,7 @@
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.Method;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -40,6 +41,7 @@
 
     public static final String EXTENSIONMANAGER_PROPERTY_NAME = "extensionManager";
     public static final String ACTIVATION_NAMESPACES_PROPERTY_NAME = "activationNamespaces";
+    public static final String ACTIVATION_NAMESPACES_SETTER_METHOD_NAME = "setActivationNamespaces";
     public static final String BUS_EXTENSION_RESOURCE = "META-INF/bus-extensions.xml";
     
     private final ClassLoader loader;
@@ -153,9 +155,13 @@
             resourceManager.addResourceResolver(namespacesResolver);
         }
         
+        // Since we need to support spring2.5 by removing @Resource("activationNamespaces")
+        // Now we call the setActivationNamespaces method directly here
+        invockSetterActivationNSMethod(obj, e.getNamespaces());
+        
         ResourceInjector injector = new ResourceInjector(resourceManager);
         
-        try {
+        try {            
             injector.inject(obj);
             injector.construct(obj);
         } finally {
@@ -195,6 +201,28 @@
         return null;
     }
     
-    
+    private void invockSetterActivationNSMethod(Object target, Object value) {
+        Class clazz = target.getClass();
+        String methodName = ACTIVATION_NAMESPACES_SETTER_METHOD_NAME;
+        while (clazz != Object.class) {
+            Method[] methods = clazz.getMethods();
+            for (int i = 0; i < methods.length; i++) {
+                Method method = methods[i];
+                Class params[] = method.getParameterTypes();
+                if (method.getName().equals(methodName) && params.length == 1) {
+                    Class paramType = params[0];
+                    if (paramType.isInstance(value)) {
+                        try {
+                            method.invoke(target, new Object[] {value});
+                        } catch (Exception e) {
+                            // do nothing here
+                        }
+                        return;
+                    }
+                }
+            }
+            clazz = clazz.getSuperclass();
+        }        
+    }
 
 }

Modified: incubator/cxf/branches/2.0.x-fixes/rt/core/src/test/java/org/apache/cxf/bus/extension/ExtensionManagerTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/core/src/test/java/org/apache/cxf/bus/extension/ExtensionManagerTest.java?rev=600814&r1=600813&r2=600814&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/rt/core/src/test/java/org/apache/cxf/bus/extension/ExtensionManagerTest.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/rt/core/src/test/java/org/apache/cxf/bus/extension/ExtensionManagerTest.java Mon Dec  3 23:13:10 2007
@@ -85,7 +85,7 @@
     public void verifyActivateViaNS(String extensionClass, String ns) {        
         
         Extension e = new Extension();
-        e.setClassname(MyResourceService.class.getName());       
+        e.setClassname(extensionClass);       
         e.getNamespaces().add(ns);
         e.setDeferred(true);
         manager.processExtension(e);
@@ -97,7 +97,7 @@
         
         // second activation should be a no-op
         
-        MyService first = myService;
+        MyService first = myService;        
         manager.activateViaNS(ns);
         assertSame(first, myService);
         myService = null;

Modified: incubator/cxf/branches/2.0.x-fixes/rt/core/src/test/java/org/apache/cxf/bus/extension/MySetterService.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/core/src/test/java/org/apache/cxf/bus/extension/MySetterService.java?rev=600814&r1=600813&r2=600814&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/rt/core/src/test/java/org/apache/cxf/bus/extension/MySetterService.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/rt/core/src/test/java/org/apache/cxf/bus/extension/MySetterService.java Mon Dec  3 23:13:10 2007
@@ -34,6 +34,7 @@
     public MySetterService() {
     }
     
+    
     public void setActivationNamespaces(Collection<String> avNamespaces) {
         activationNamespaces = avNamespaces;
     }

Modified: incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java?rev=600814&r1=600813&r2=600814&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java Mon Dec  3 23:13:10 2007
@@ -255,7 +255,14 @@
             inMessage.put(HTTP_RESPONSE, resp);
             inMessage.put(Message.HTTP_REQUEST_METHOD, req.getMethod());
             inMessage.put(Message.PATH_INFO, req.getContextPath() + req.getPathInfo());
-            inMessage.put(Message.ENCODING, HttpHeaderHelper.mapCharset(req.getCharacterEncoding()));
+            String normalizedEncoding = HttpHeaderHelper.mapCharset(req.getCharacterEncoding());
+            if (normalizedEncoding == null) {
+                String m = new org.apache.cxf.common.i18n.Message("INVALID_ENCODING_MSG",
+                                                                  LOG, req.getCharacterEncoding()).toString();
+                LOG.log(Level.WARNING, m);
+                throw new IOException(m);   
+            }
+            inMessage.put(Message.ENCODING, normalizedEncoding);
             inMessage.put(Message.QUERY_STRING, req.getQueryString());
             inMessage.put(Message.CONTENT_TYPE, req.getContentType());
             if (!StringUtils.isEmpty(endpointInfo.getAddress())) {

Modified: incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties?rev=600814&r1=600813&r2=600814&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties (original)
+++ incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties Mon Dec  3 23:13:10 2007
@@ -24,3 +24,4 @@
 CAN_NOT_FIND_HANDLER_MSG = Could not find the handler to remove for context url {0}
 FAILED_TO_SHUTDOWN_ENGINE_MSG = Failed to shutdown Jetty server: {0} because it is still in use
 UNKNOWN_CONNECTOR_MSG = Unknown connector type {0}, can't set the socket reuseAddress flag.
+INVALID_ENCODING_MSG = Invalid character set {0} in request.
\ No newline at end of file

Modified: incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java?rev=600814&r1=600813&r2=600814&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java Mon Dec  3 23:13:10 2007
@@ -123,7 +123,7 @@
         engine.setPort(9000);
         try {
             engine.finalizeConfig();
-            fail("We should get the connector not set with TSLServerParament exception ");
+            fail("We should get the connector not set with TSLServerParameter exception.");
         } catch (Exception ex) {
             // expect the excepion            
         }
@@ -135,9 +135,9 @@
         engine.setPort(9000);
         try {
             engine.finalizeConfig();
-            fail("We should get the connector not set right port exception ");
+            fail("We should get the connector not set right port exception.");
         } catch (Exception ex) {
-            // expect the excepion            
+            // expect the exception            
         }
         
         engine = new JettyHTTPServerEngine();
@@ -146,15 +146,9 @@
         engine.setConnector(conn);
         engine.setPort(9003);
         engine.setTlsServerParameters(new TLSServerParameters());
-        try {
-            engine.finalizeConfig();
-        } catch (Exception ex) {
-            fail("We should not throw exception here");
-        }
+        engine.finalizeConfig();
     }
     
-       
-    
     @Test 
     public void testaddServants() throws Exception {
         String urlStr = "http://localhost:9234/hello/test";
@@ -165,28 +159,16 @@
         JettyHTTPTestHandler handler2 = new JettyHTTPTestHandler("string2");        
         engine.addServant(new URL(urlStr), handler1);
         String response = null;
-        try {
-            response = getResponse(urlStr);
-        } catch (Exception ex) {
-            fail("Can't get the response from the server " + ex);
-        }
+        response = getResponse(urlStr);
         assertEquals("The jetty http handler did not take effect", response, "string1");
         
         engine.addServant(new URL(urlStr), handler2);
-        try {
-            response = getResponse(urlStr);
-        } catch (Exception ex) {
-            fail("Can't get the response from the server " + ex);
-        }
+        response = getResponse(urlStr);
         assertEquals("The jetty http handler did not take effect", response, "string1string2");
         engine.addServant(new URL(urlStr2), handler2);
         engine.removeServant(new URL(urlStr));
         engine.shutdown();
-        try {
-            response = getResponse(urlStr2);
-        } catch (Exception ex) {
-            fail("Server should still work, even if we call the shutdown" + ex);
-        }
+        response = getResponse(urlStr2);
         assertEquals("The jetty http handler did not take effect", response, "string2");
         // set the get request
         factory.destroyForPort(9234);       
@@ -256,5 +238,4 @@
         IOUtils.copy(in, buffer);
         return buffer.toString();
     }
-    
 }

Modified: incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java?rev=600814&r1=600813&r2=600814&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java Mon Dec  3 23:13:10 2007
@@ -1927,8 +1927,17 @@
                     enc = enc.substring(0, enc.indexOf(";"));
                 }
             }
-            inMessage.put(Message.ENCODING, HttpHeaderHelper.mapCharset(enc));
             
+            String normalizedEncoding = HttpHeaderHelper.mapCharset(enc);
+            if (normalizedEncoding == null) {
+                String m = new org.apache.cxf.common.i18n.Message("INVALID_ENCODING_MSG",
+                                                                   LOG, enc).toString();
+                LOG.log(Level.WARNING, m);
+                throw new IOException(m);   
+            } 
+            
+            inMessage.put(Message.ENCODING, normalizedEncoding);
+                        
             if (maintainSession) {
                 String cookieStr = connection.getHeaderField("Set-Cookie");
                 sessionCookies = Cookie.handleSetCookie(sessionCookies, cookieStr);

Modified: incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Messages.properties
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Messages.properties?rev=600814&r1=600813&r2=600814&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Messages.properties (original)
+++ incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Messages.properties Mon Dec  3 23:13:10 2007
@@ -19,6 +19,7 @@
 #
 #
 UNEXPECTED_RESPONSE_TYPE_MSG = Unexpected response type {0}
+INVALID_ENCODING_MSG = Invalid character set {0} in request.
 NULL_RESPONSE_MSG = Response object is null
 DECOUPLED_RESPONSE_FAILED_MSG = Decouple response failed
 MISSING_PATH_INFO = PATH_INFO not present in message context, multiplex id is unavailable. Ensure the portName passed to getCurrentEndpointReferenceId is correct if the service has multiple ports

Modified: incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/Messages.properties
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/Messages.properties?rev=600814&r1=600813&r2=600814&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/Messages.properties (original)
+++ incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/Messages.properties Mon Dec  3 23:13:10 2007
@@ -26,3 +26,4 @@
 UNEXPECTED_RESPONSE_TYPE_MSG = Unexpected response type {0}
 DECOUPLED_RESPONSE_FAILED_MSG = Decouple response failed
 FAILED_TO_LOAD_SPRING_BUS = Failed to load the spring bus: {0}
+INVALID_ENCODING_MSG = Invalid character set {0} in request.

Modified: incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java
URL: http://svn.apache.org/viewvc/incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java?rev=600814&r1=600813&r2=600814&view=diff
==============================================================================
--- incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java (original)
+++ incubator/cxf/branches/2.0.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java Mon Dec  3 23:13:10 2007
@@ -245,8 +245,16 @@
             if (enc != null && enc.endsWith("\"")) {
                 enc = enc.substring(0, enc.length() - 1);
             }
+
+            String normalizedEncoding = HttpHeaderHelper.mapCharset(enc);
+            if (normalizedEncoding == null) {
+                String m = new org.apache.cxf.common.i18n.Message("INVALID_ENCODING_MSG",
+                                                                  LOG, enc).toString();
+                LOG.log(Level.WARNING, m);
+                throw new IOException(m);   
+            }
             
-            inMessage.put(Message.ENCODING, HttpHeaderHelper.mapCharset(enc));
+            inMessage.put(Message.ENCODING, normalizedEncoding);
             SSLUtils.propogateSecureSession(request, inMessage);
             
             ExchangeImpl exchange = new ExchangeImpl();