Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8184958

URI getSchemeSpecificPart() does not decode properly

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P3 P3
    • tbd
    • 8u131, 9
    • core-libs
    • None
    • generic
    • generic

      This is related to JDK-8037396, where query and fragment parts were fixed.
      However, the same issue persists for the scheme specific part.

      Consider following code as an example:
      URI uri;
      uri = new URI("s", "s#s", null);
      System.out.println("SSP s#s is: "+uri.getSchemeSpecificPart());
      uri = new URI("s", "s[#s", null);
      System.out.println("SSP s[#s is: "+uri.getSchemeSpecificPart());
      It prints out:
      SSP s#s is: s#s
      SSP s[#s is: s[%23s

      The fix is simple, I believe:
      diff -r a888f40a049a src/java.base/share/classes/java/net/URI.java
      --- a/src/java.base/share/classes/java/net/URI.java Thu Jul 13 17:32:51 2017 +0000
      +++ b/src/java.base/share/classes/java/net/URI.java Thu Jul 20 00:49:48 2017 +0200
      @@ -1213,7 +1213,7 @@
           public String getSchemeSpecificPart() {
               String part = decodedSchemeSpecificPart;
               if (part == null) {
      - decodedSchemeSpecificPart = part = decode(getRawSchemeSpecificPart());
      + decodedSchemeSpecificPart = part = decode(getRawSchemeSpecificPart(), false);
               }
               return part;
           }

            dfuchs Daniel Fuchs
            mentlich Martin Entlicher
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: