RFR JDK-8037396: URI getQuery() and getFragment() don't decode properly

Chris Hegarty chris.hegarty at oracle.com
Fri Apr 4 15:13:06 UTC 2014


On 04/04/14 16:06, Michael McMahon wrote:
> In my view, it's the current behavior that is surprising.

Agreed. Considered and overridden. This has my vote.

-Chris.

 >You would
> really expect
> those methods to return the un-encoded strings. It's odd we haven't come
> across
> this issue before now, which probably indicates use of '[]' in those
> components
> is uncommon.
>
> Michael
>
> On 04/04/14 16:01, Chris Hegarty wrote:
>> Pavel,
>>
>> The code changes and test update look good to me.
>>
>> I think I agree with the approach here, but just to clarify the change
>> in behavior, that will be visible after the changes.
>>
>> $ cat Test.java
>> public class Test {
>>     public static void main(String[] args) throws Exception {
>>          java.net.URI u = new java.net.URI("http", "example.org", "/a
>> b[c d]", "a b[c d]", "a b[c d]");
>>          System.out.println("path:" + u.getPath());
>>          System.out.println("path:" + u.getQuery());
>>          System.out.println("path:" + u.getFragment());
>>     }
>> }
>>
>> -- without fix --
>> $ java Test
>> path:/a b[c d]
>> path:a b[c%20d]
>> path:a b[c%20d]
>>
>> -- with fix ---
>> $ java Test
>> path:/a b[c d]
>> path:a b[c d]
>> path:a b[c d]
>>
>> So the question now is; Will this surprise anyone? possibly embedding
>> URLs/URIs in query strings? I expect not, but just want to spell out
>> the change in behavior so that we can make an informed decision.
>>
>> -Chris.
>>
>>
>> On 04/04/14 15:45, Pavel Rappo wrote:
>>> Hi everyone,
>>>
>>> could you please review my change for JDK-8037396:
>>> http://cr.openjdk.java.net/~michaelm/8037396/webrev/
>>>
>>> As per API, getQuery() and getFragment() should return the decoded
>>> string. But this seems not to work properly if there are squared
>>> brackets around them.
>>>
>>> The result of analysis can be seen here:
>>>
>>> https://bugs.openjdk.java.net/browse/JDK-8037396?focusedCommentId=13479678&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13479678
>>>
>>>
>>> I think we should go the least intrusive way here (excluding 'do
>>> nothing' option).
>>>
>>> Thanks
>>> -Pavel
>>>
>


More information about the net-dev mailing list