You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/05/12 09:45:41 UTC

svn commit: r1337464 - /camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java

Author: davsclaus
Date: Sat May 12 07:45:41 2012
New Revision: 1337464

URL: http://svn.apache.org/viewvc?rev=1337464&view=rev
Log:
CAMEL-5274: Fixed jetty http client issue with streams may be corrupt. Code aligned like http/http4 producers.

Modified:
    camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java

Modified: camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java?rev=1337464&r1=1337463&r2=1337464&view=diff
==============================================================================
--- camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java (original)
+++ camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java Sat May 12 07:45:41 2012
@@ -117,10 +117,14 @@ public class JettyHttpProducer extends D
                 httpExchange.setRequestContent(new ByteArrayBuffer(bos.toByteArray()));
                 IOHelper.close(bos);
             } else {
-                // try with String at first
-                String data = exchange.getIn().getBody(String.class);
-                if (data != null) {
-                    String charset = exchange.getProperty(Exchange.CHARSET_NAME, String.class);
+                Object body = exchange.getIn().getBody();
+                if (body instanceof String) {
+                    String data = (String) body;
+                    // be a bit careful with String as any type can most likely be converted to String
+                    // so we only do an instanceof check and accept String if the body is really a String
+                    // do not fallback to use the default charset as it can influence the request
+                    // (for example application/x-www-form-urlencoded forms being sent)
+                    String charset = IOHelper.getCharsetName(exchange, false);
                     if (charset != null) {
                         httpExchange.setRequestContent(new ByteArrayBuffer(data, charset));
                     } else {