handling code. It's very easy to demonstrate, the following code shows the
String query = URLEncoder.encode("D & B", "UTF-8");
String endpoint = "https4://www.google.com/?" + query;
Exchange response = producerTemplate().send(endpoint, new
The result back from the Google search is only performed on 'D', and not the
full 'D & B' search term we specified.
I thought this problem might have been resolved by CAMEL-4857, since that is
a code change in the same area of the code, but downloading and building
Camel TRUNK doesn't fix this simple problem at all, nor can I see any way it
can fix the above problem (so I think this is a separate bug completely).
The real problem seems to be located in the following line from the method
'normalizeUri(String uri)' in the class 'URISupport.java':
Line 349 (in trunk): Map<String, Object> parameters =
Within the 'parseParameters()' method, the first line calls
'uri.getQuery()', but this decodes the query string, which results in my
encoded query string above (which is passed into this method correctly as
'?q=D+%26+B') being decoded to '?q=D+&+B', which is then subsequently parsed
(in the 'parseQuery(query)' line at 178) as having multiple query params
('q=D+' and '+B') when in fact it really only has one ('q=D+%20+B').
I was hoping to make a simple code change to this code (i.e. simply changing
the above 'uri.getQuery()' call to be 'uri.getRawQuery()' but my trunk
version fails with a test failure when I run 'mvn clean install' on the
'camel-core' POM, see below:
FilePollThirdTimeOkTest): mock://result Body of message: 0. Expected: <Hello
ld this file will be deleted> but was: <null>
Tests run: 4322, Failures: 1, Errors: 0, Skipped: 1
Any guidance would be very welcome...
View this message in context: http://camel.465427.n5.nabble.com/Ampersand-in-URI-query-parameter-not-working-CAMEL-4857-doesn-t-fix-tp5720914.html
Sent from the Camel - Users mailing list archive at Nabble.com.