Author: davsclaus Date: Tue Feb 28 16:05:06 2012 New Revision: 1294710 URL: http://svn.apache.org/viewvc?rev=1294710&view=rev Log: CAMEL-4871: Fixed when using empty body and x-www-form content-type.
Modified: camel/branches/camel-2.9.x/ (props changed) camel/branches/camel-2.9.x/components/camel-http/src/main/java/org/apache/camel/component/http/DefaultHttpBinding.java camel/branches/camel-2.9.x/components/camel-http4/src/main/java/org/apache/camel/component/http4/DefaultHttpBinding.java Propchange: camel/branches/camel-2.9.x/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Feb 28 16:05:06 2012 @@ -1 +1 @@ -/camel/trunk:1243046,1243057,1243234,1244518,1244644,1244859,1244861,1244864,1244870,1244872,1245021,1291555,1291727,1291848,1291864,1292114,1292384,1292725,1292760,1292767,1293079,1293268,1293288,1293330,1293590,1293828,1293852,1293855,1294130,1294482,1294502,1294533,1294588,1294639 +/camel/trunk:1243046,1243057,1243234,1244518,1244644,1244859,1244861,1244864,1244870,1244872,1245021,1291555,1291727,1291848,1291864,1292114,1292384,1292725,1292760,1292767,1293079,1293268,1293288,1293330,1293590,1293828,1293852,1293855,1294130,1294482,1294502,1294533,1294588,1294639,1294709 Propchange: camel/branches/camel-2.9.x/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: camel/branches/camel-2.9.x/components/camel-http/src/main/java/org/apache/camel/component/http/DefaultHttpBinding.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-http/src/main/java/org/apache/camel/component/http/DefaultHttpBinding.java?rev=1294710&r1=1294709&r2=1294710&view=diff ============================================================================== --- camel/branches/camel-2.9.x/components/camel-http/src/main/java/org/apache/camel/component/http/DefaultHttpBinding.java (original) +++ camel/branches/camel-2.9.x/components/camel-http/src/main/java/org/apache/camel/component/http/DefaultHttpBinding.java Tue Feb 28 16:05:06 2012 @@ -177,17 +177,19 @@ public class DefaultHttpBinding implemen } // Push POST form params into the headers to retain compatibility with DefaultHttpBinding String body = message.getBody(String.class); - for (String param : body.split("&")) { - String[] pair = param.split("=", 2); - if (pair.length == 2) { - String name = URLDecoder.decode(pair[0], charset); - String value = URLDecoder.decode(pair[1], charset); - if (headerFilterStrategy != null - && !headerFilterStrategy.applyFilterToExternalHeaders(name, value, message.getExchange())) { - HttpHelper.appendHeader(headers, name, value); + if (ObjectHelper.isNotEmpty(body)) { + for (String param : body.split("&")) { + String[] pair = param.split("=", 2); + if (pair.length == 2) { + String name = URLDecoder.decode(pair[0], charset); + String value = URLDecoder.decode(pair[1], charset); + if (headerFilterStrategy != null + && !headerFilterStrategy.applyFilterToExternalHeaders(name, value, message.getExchange())) { + HttpHelper.appendHeader(headers, name, value); + } + } else { + throw new IllegalArgumentException("Invalid parameter, expected to be a pair but was " + param); } - } else { - throw new IllegalArgumentException("Invalid parameter, expected to be a pair but was " + param); } } } Modified: camel/branches/camel-2.9.x/components/camel-http4/src/main/java/org/apache/camel/component/http4/DefaultHttpBinding.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-http4/src/main/java/org/apache/camel/component/http4/DefaultHttpBinding.java?rev=1294710&r1=1294709&r2=1294710&view=diff ============================================================================== --- camel/branches/camel-2.9.x/components/camel-http4/src/main/java/org/apache/camel/component/http4/DefaultHttpBinding.java (original) +++ camel/branches/camel-2.9.x/components/camel-http4/src/main/java/org/apache/camel/component/http4/DefaultHttpBinding.java Tue Feb 28 16:05:06 2012 @@ -162,17 +162,19 @@ public class DefaultHttpBinding implemen } // Push POST form params into the headers to retain compatibility with DefaultHttpBinding String body = message.getBody(String.class); - for (String param : body.split("&")) { - String[] pair = param.split("=", 2); - if (pair.length == 2) { - String name = URLDecoder.decode(pair[0], charset); - String value = URLDecoder.decode(pair[1], charset); - if (headerFilterStrategy != null - && !headerFilterStrategy.applyFilterToExternalHeaders(name, value, message.getExchange())) { - headers.put(name, value); + if (ObjectHelper.isNotEmpty(body)) { + for (String param : body.split("&")) { + String[] pair = param.split("=", 2); + if (pair.length == 2) { + String name = URLDecoder.decode(pair[0], charset); + String value = URLDecoder.decode(pair[1], charset); + if (headerFilterStrategy != null + && !headerFilterStrategy.applyFilterToExternalHeaders(name, value, message.getExchange())) { + headers.put(name, value); + } + } else { + throw new IllegalArgumentException("Invalid parameter, expected to be a pair but was " + param); } - } else { - throw new IllegalArgumentException("Invalid parameter, expected to be a pair but was " + param); } } }