RFR JDK-8037396: URI getQuery() and getFragment() don't decode properly
Chris Hegarty
chris.hegarty at oracle.com
Fri Apr 4 15:01:52 UTC 2014
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