camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Charles Moulliard <ch0...@gmail.com>
Subject Re: org.apache.camel.util.URISupport
Date Fri, 23 May 2014 06:41:30 GMT
Thx for the info. I will open a ticket and add the correction


On Thu, May 22, 2014 at 9:19 PM, jwblackw <jamesblackwood@gmail.com> wrote:

> org.apache.camel.util.URISupport
>
> line 158
>
> if (i < uri.length() - 2) {
>
> This instead should be:
>
> if (i <= uri.length() - 2) {
>
> The reason is that you are trying to calculate the next character.
> So for example if we take the string "abc"
> When i = 0   we are at 'a' and we calculate next as 'b'
> But when i = 1 we are at 'b' and next should be 'c', but since the if
> statement fails the else statement runs and next gets set to '\u0000'
>
> "abc" is a simple example.  Let's try something more "real world" now.
>
> The problem occurs when you have this example string:
> "flatten=false&recursive=false&delete=true&include=RAW(%5E.*%5B.%5D(xml))"
>
> If you try that string, you can see based on the logic when we get to the
> "closed paren" after the l in xml... next gets set to '\u0000' instead of
> ')' like it should.  And then when we get to line 177
> boolean end = ch == RAW_TOKEN_END.charAt(0) && (next == '&' || next ==
> '\u0000');
> end gets set to true, when really we are not at the end.  We had 1 more
> "closed paren" to process.
>
> Thus my last value gets set to RAW(%5E.*%5B.%5D(xml)
> When it really should be RAW(%5E.*%5B.%5D(xml))
>
> Thanks for correcting this.
> -James
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/org-apache-camel-util-URISupport-tp5751485.html
> Sent from the Camel Development mailing list archive at Nabble.com.
>



-- 
Charles Moulliard
Apache Committer / Architect @RedHat
Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message