[ 
https://issues.apache.org/activemq/browse/CAMEL-3114?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen reassigned CAMEL-3114:
----------------------------------

    Assignee: Claus Ibsen

> url encoding goes wrong in 
> org.apache.camel.component.rss.RssComponent#afterConfiguration
> -----------------------------------------------------------------------------------------
>
>                 Key: CAMEL-3114
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-3114
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-rss
>    Affects Versions: 2.4.0
>         Environment: jdk: Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
> platform: linux (ubuntu 10.04)
>            Reporter: Ernst Bunders
>            Assignee: Claus Ibsen
>         Attachments: test.groovy
>
>
> The method org.apache.camel.component.rss.RssComponent#afterConfiguration 
> creates the Url that will be used to fetch the rss feed. We find that with 
> some url's url encoding goes wrong.
> consider this url: 
> http://api.flickr.com/services/feeds/photos_public.gne?id=23353...@n05&tags=lowlands&lang=en-us&format=rss_200
> AfterConfiguration() calls 
> org.apache.camel.util.URISupport#createRemainingURI This method first calls 
> org.apache.camel.util.URISupport#createQueryString, which is a method that 
> will iterate over a map of request parameters, escape each param name and 
> value using java.net.URLEncoder#encode, and put them together with all the & 
> and = stuff to form the query string.
> Then it calls org.apache.camel.util.URISupport#createURIWithQuery Which is a 
> method that takes a URI (the base url) and the constructed query string, and 
> simply creates a new URI with that, returning the toString() output from that.
> So this is what the output of this procedure looks like: 
> http://api.flickr.com/services/feeds/photos_public.gne?format=rss_200&id=23353282%2540N05&lang=en-us&tags=lowlands
> 1 the @ sign was escaped by 
> org.apache.camel.util.URISupport#createQueryString, creating a query string 
> like: id=23353282%40N05&tags=lowlands&lang=en-us&format=rss_200 (which is 
> good)
> 2 the URI constructor then finds the % in %40 and escapes that again! 
> creating a url like: 
> http://api.flickr.com/services/feeds/photos_public.gne?format=rss_200&id=23353282%2540N05&lang=en-us&tags=lowlands
>  
> Which predictably fails...
> I did some tests with the URI constructor, and it seems it only escapes % 
> chars, everything else is left alone.
> I attach a groovy script that demonstrates the problem
> regards,
> Ernst Bunders

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to