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

svn commit: r600749 - in /incubator/cxf/trunk: common/common/src/main/java/org/apache/cxf/helpers/ common/common/src/test/java/org/apache/cxf/helpers/ rt/javascript/src/main/java/org/apache/cxf/javascript/ rt/javascript/src/test/resources/ rt/transport...

Author: bimargulies
Date: Mon Dec  3 16:44:10 2007
New Revision: 600749

URL: http://svn.apache.org/viewvc?rev=600749&view=rev
Log:
Fix 1227 some more, and don't just ignore bogus charsets. Complain.

Added:
    incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/JavascriptPrefix.java
Modified:
    incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java
    incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/helpers/HttpHeaderHelperTest.java
    incubator/cxf/trunk/rt/javascript/src/test/resources/logging.properties
    incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
    incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties
    incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java
    incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
    incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Messages.properties
    incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/Messages.properties
    incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java

Modified: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java?rev=600749&r1=600748&r2=600749&view=diff
==============================================================================
--- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java (original)
+++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java Mon Dec  3 16:44:10 2007
@@ -74,6 +74,10 @@
         if (enc == null) {
             return null;
         }
+        // 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("'", "");
         String newenc = encodings.get(enc);
         if (newenc == null) {
             try {

Modified: incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/helpers/HttpHeaderHelperTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/helpers/HttpHeaderHelperTest.java?rev=600749&r1=600748&r2=600749&view=diff
==============================================================================
--- incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/helpers/HttpHeaderHelperTest.java (original)
+++ incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/helpers/HttpHeaderHelperTest.java Mon Dec  3 16:44:10 2007
@@ -36,6 +36,10 @@
         assertEquals(Charset.forName("utf-8").name(), cs);
         cs = HttpHeaderHelper.mapCharset(null);
         assertNull(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);
     }
 
 }

Added: incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/JavascriptPrefix.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/JavascriptPrefix.java?rev=600749&view=auto
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/JavascriptPrefix.java (added)
+++ incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/JavascriptPrefix.java Mon Dec  3 16:44:10 2007
@@ -0,0 +1,40 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.javascript;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Use this annotation to control the names of Javascript objects associated with this package.
+ * Use this with a JAXB XmlSchema annotation or the equivalent for another data binding to associate
+ * a namespace with the package.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.PACKAGE)
+public @interface JavascriptPrefix {
+    /**
+     * The name prefix for this package's namespace. 
+     * @return
+     */
+    String prefix() default "";
+}

Modified: incubator/cxf/trunk/rt/javascript/src/test/resources/logging.properties
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/resources/logging.properties?rev=600749&r1=600748&r2=600749&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/resources/logging.properties (original)
+++ incubator/cxf/trunk/rt/javascript/src/test/resources/logging.properties Mon Dec  3 16:44:10 2007
@@ -23,8 +23,8 @@
 .level= INFO
 java.util.logging.ConsoleHandler.level = FINEST
 java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
-org.apache.cxf.javascript.service.ServiceJavascriptBuilder.level=FINEST
-org.apache.cxf.javascript.types.SchemaJavascriptBuilder.level=FINEST
+#org.apache.cxf.javascript.service.ServiceJavascriptBuilder.level=FINEST
+#org.apache.cxf.javascript.types.SchemaJavascriptBuilder.level=FINEST
 #org.apache.cxf.javascript.JavascriptTestUtilities.level=FINE
 #org.apache.cxf.javascript.JsXMLHttpRequest.level = FINE
 #org.apache.cxf.javascript.service.DocLitWrappedTest.level=FINE

Modified: incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java?rev=600749&r1=600748&r2=600749&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java (original)
+++ incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java Mon Dec  3 16:44: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/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties?rev=600749&r1=600748&r2=600749&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties (original)
+++ incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/Messages.properties Mon Dec  3 16:44: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 on port {0,number,####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/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java?rev=600749&r1=600748&r2=600749&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java (original)
+++ incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java Mon Dec  3 16:44: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/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java?rev=600749&r1=600748&r2=600749&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java Mon Dec  3 16:44: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/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Messages.properties
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Messages.properties?rev=600749&r1=600748&r2=600749&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Messages.properties (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Messages.properties Mon Dec  3 16:44: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/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/Messages.properties
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/Messages.properties?rev=600749&r1=600748&r2=600749&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/Messages.properties (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/Messages.properties Mon Dec  3 16:44: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/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java?rev=600749&r1=600748&r2=600749&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/servlet/ServletController.java Mon Dec  3 16:44: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();



RE: svn commit: r600749 - in /incubator/cxf/trunk: common/common/src/main/java/org/apache/cxf/helpers/ common/common/src/test/java/org/apache/cxf/helpers/ rt/javascript/src/main/java/org/apache/cxf/javascript/ rt/javascript/src/test/resources/ rt/transpor

Posted by Benson Margulies <bi...@basistech.com>.
 This accidently has two files related to the javascript project mixed
in to the 2.0.4-ish http header fixes.

> -----Original Message-----
> From: bimargulies@apache.org [mailto:bimargulies@apache.org] 
> Sent: Monday, December 03, 2007 7:44 PM
> To: cxf-commits@incubator.apache.org
> Subject: svn commit: r600749 - in /incubator/cxf/trunk: 
> common/common/src/main/java/org/apache/cxf/helpers/ 
> common/common/src/test/java/org/apache/cxf/helpers/ 
> rt/javascript/src/main/java/org/apache/cxf/javascript/ 
> rt/javascript/src/test/resources/ rt/transport...
> 
> Author: bimargulies
> Date: Mon Dec  3 16:44:10 2007
> New Revision: 600749
> 
> URL: http://svn.apache.org/viewvc?rev=600749&view=rev
> Log:
> Fix 1227 some more, and don't just ignore bogus charsets. Complain.
> 
> Added:
>     
> incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf
> /javascript/JavascriptPrefix.java
> Modified:
>     
> incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf
> /helpers/HttpHeaderHelper.java
>     
> incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf
> /helpers/HttpHeaderHelperTest.java
>     
> incubator/cxf/trunk/rt/javascript/src/test/resources/logging.p
> roperties
>     
> incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org
/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
>     
> incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org
> /apache/cxf/transport/http_jetty/Messages.properties
>     
> incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org
/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java
>     
> incubator/cxf/trunk/rt/transports/http/src/main/java/org/apach
> e/cxf/transport/http/HTTPConduit.java
>     
> incubator/cxf/trunk/rt/transports/http/src/main/java/org/apach
> e/cxf/transport/http/Messages.properties
>     
> incubator/cxf/trunk/rt/transports/http/src/main/java/org/apach
> e/cxf/transport/servlet/Messages.properties
>     
> incubator/cxf/trunk/rt/transports/http/src/main/java/org/apach
> e/cxf/transport/servlet/ServletController.java
> 
> Modified: 
> incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf
> /helpers/HttpHeaderHelper.java
> URL: 
> http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common
> /src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java?re
> v=600749&r1=600748&r2=600749&view=diff
> ==============================================================
> ================
> --- 
> incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf
> /helpers/HttpHeaderHelper.java (original)
> +++ 
> incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/helpe
> +++ rs/HttpHeaderHelper.java Mon Dec  3 16:44:10 2007
> @@ -74,6 +74,10 @@
>          if (enc == null) {
>              return null;
>          }
> +        // 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("'", "");
>          String newenc = encodings.get(enc);
>          if (newenc == null) {
>              try {
> 
> Modified: 
> incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf
> /helpers/HttpHeaderHelperTest.java
> URL: 
> http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common
> /src/test/java/org/apache/cxf/helpers/HttpHeaderHelperTest.jav
> a?rev=600749&r1=600748&r2=600749&view=diff
> ==============================================================
> ================
> --- 
> incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf
> /helpers/HttpHeaderHelperTest.java (original)
> +++ 
> incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/helpe
> +++ rs/HttpHeaderHelperTest.java Mon Dec  3 16:44:10 2007
> @@ -36,6 +36,10 @@
>          assertEquals(Charset.forName("utf-8").name(), cs);
>          cs = HttpHeaderHelper.mapCharset(null);
>          assertNull(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);
>      }
>  
>  }
> 
> Added: 
> incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf
> /javascript/JavascriptPrefix.java
> URL: 
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript
> /src/main/java/org/apache/cxf/javascript/JavascriptPrefix.java
> ?rev=600749&view=auto
> ==============================================================
> ================
> --- 
> incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf
> /javascript/JavascriptPrefix.java (added)
> +++ 
> incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javas
> +++ cript/JavascriptPrefix.java Mon Dec  3 16:44:10 2007
> @@ -0,0 +1,40 @@
> +/**
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements. See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership. The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License. You may obtain a copy of the License at
> + *
> + * http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied. See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +package org.apache.cxf.javascript;
> +
> +import java.lang.annotation.ElementType; import 
> +java.lang.annotation.Retention; import 
> +java.lang.annotation.RetentionPolicy;
> +import java.lang.annotation.Target;
> +
> +/**
> + * Use this annotation to control the names of Javascript 
> objects associated with this package.
> + * Use this with a JAXB XmlSchema annotation or the equivalent for 
> +another data binding to associate
> + * a namespace with the package.
> + */
> +@Retention(RetentionPolicy.RUNTIME)
> +@Target(ElementType.PACKAGE)
> +public @interface JavascriptPrefix {
> +    /**
> +     * The name prefix for this package's namespace. 
> +     * @return
> +     */
> +    String prefix() default "";
> +}
> 
> Modified: 
> incubator/cxf/trunk/rt/javascript/src/test/resources/logging.p
> roperties
> URL: 
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript
> /src/test/resources/logging.properties?rev=600749&r1=600748&r2
> =600749&view=diff
> ==============================================================
> ================
> --- 
> incubator/cxf/trunk/rt/javascript/src/test/resources/logging.p
> roperties (original)
> +++ 
> incubator/cxf/trunk/rt/javascript/src/test/resources/logging.propert
> +++ ies Mon Dec  3 16:44:10 2007
> @@ -23,8 +23,8 @@
>  .level= INFO
>  java.util.logging.ConsoleHandler.level = FINEST  
> java.util.logging.ConsoleHandler.formatter = 
> java.util.logging.SimpleFormatter 
> -org.apache.cxf.javascript.service.ServiceJavascriptBuilder.le
> vel=FINEST
> -org.apache.cxf.javascript.types.SchemaJavascriptBuilder.level=FINEST
> +#org.apache.cxf.javascript.service.ServiceJavascriptBuilder.l
> evel=FINES
> +T 
> #org.apache.cxf.javascript.types.SchemaJavascriptBuilder.level=FINEST
>  #org.apache.cxf.javascript.JavascriptTestUtilities.level=FINE
>  #org.apache.cxf.javascript.JsXMLHttpRequest.level = FINE  
> #org.apache.cxf.javascript.service.DocLitWrappedTest.level=FINE
> 
> Modified: 
> incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org
/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
> URL: 
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports
> /http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/
> JettyHTTPDestination.java?rev=600749&r1=600748&r2=600749&view=diff
> ==============================================================
> ================
> --- 
> incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org
/apache/cxf/transport/http_jetty/JettyHTTPDestination.java (original)
> +++ 
> incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apach
> +++ e/cxf/transport/http_jetty/JettyHTTPDestination.java Mon Dec  3 
> +++ 16:44: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/trunk/rt/transports/http-jetty/src/main/java/org
> /apache/cxf/transport/http_jetty/Messages.properties
> URL: 
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports
> /http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/
> Messages.properties?rev=600749&r1=600748&r2=600749&view=diff
> ==============================================================
> ================
> --- 
> incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org
> /apache/cxf/transport/http_jetty/Messages.properties (original)
> +++ 
> incubator/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apach
> +++ e/cxf/transport/http_jetty/Messages.properties Mon Dec  3 
> 16:44: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 on port {0,number,####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/trunk/rt/transports/http-jetty/src/test/java/org
/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java
> URL: 
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports
> /http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/
> JettyHTTPServerEngineTest.java?rev=600749&r1=600748&r2=600749&
> view=diff
> ==============================================================
> ================
> --- 
> incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org
/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java
(original)
> +++ 
> incubator/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apach
> +++ e/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java 
> Mon Dec  3 
> +++ 16:44: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/trunk/rt/transports/http/src/main/java/org/apach
> e/cxf/transport/http/HTTPConduit.java
> URL: 
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports
> /http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.
> java?rev=600749&r1=600748&r2=600749&view=diff
> ==============================================================
> ================
> --- 
> incubator/cxf/trunk/rt/transports/http/src/main/java/org/apach
> e/cxf/transport/http/HTTPConduit.java (original)
> +++ 
> incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/
> +++ transport/http/HTTPConduit.java Mon Dec  3 16:44: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/trunk/rt/transports/http/src/main/java/org/apach
> e/cxf/transport/http/Messages.properties
> URL: 
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports
> /http/src/main/java/org/apache/cxf/transport/http/Messages.pro
> perties?rev=600749&r1=600748&r2=600749&view=diff
> ==============================================================
> ================
> --- 
> incubator/cxf/trunk/rt/transports/http/src/main/java/org/apach
> e/cxf/transport/http/Messages.properties (original)
> +++ 
> incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/
> +++ transport/http/Messages.properties Mon Dec  3 16:44: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/trunk/rt/transports/http/src/main/java/org/apach
> e/cxf/transport/servlet/Messages.properties
> URL: 
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports
> /http/src/main/java/org/apache/cxf/transport/servlet/Messages.
> properties?rev=600749&r1=600748&r2=600749&view=diff
> ==============================================================
> ================
> --- 
> incubator/cxf/trunk/rt/transports/http/src/main/java/org/apach
> e/cxf/transport/servlet/Messages.properties (original)
> +++ 
> incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/
> +++ transport/servlet/Messages.properties Mon Dec  3 16:44: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/trunk/rt/transports/http/src/main/java/org/apach
> e/cxf/transport/servlet/ServletController.java
> URL: 
> http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports
> /http/src/main/java/org/apache/cxf/transport/servlet/ServletCo
> ntroller.java?rev=600749&r1=600748&r2=600749&view=diff
> ==============================================================
> ================
> --- 
> incubator/cxf/trunk/rt/transports/http/src/main/java/org/apach
> e/cxf/transport/servlet/ServletController.java (original)
> +++ 
> incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/
> +++ transport/servlet/ServletController.java Mon Dec  3 16:44: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();
> 
> 
>