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

URI.resolve() doesn't handle file paths correctly

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P4 P4
    • None
    • 5.0, 6
    • core-libs
    • x86
    • windows_xp, windows_vista

      FULL PRODUCT VERSION :
      java version "1.5.0"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
      Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Microsoft Windows XP [Version 5.1.2600]

      A DESCRIPTION OF THE PROBLEM :
      An exception is thrown where one should not be.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      The following code throws an exception:
      import java.net.*;

      /**
       *
       * @author kitfox
       */
      public class NewMain
      {
          
          /** Creates a new instance of NewMain */
          public NewMain()
          {
          }
          
          /**
           * @param args the command line arguments
           */
          public static void main(String[] args)
          {
              try
              {
                  URI uri = new URI("file:/C:/tmp/imagefade.svg");
                  String frag = "C:\\svg\\test.png";
                  URI uri2 = uri.resolve(frag);
                  System.err.println("" + uri2);
              }
              catch (Exception e)
              {
                  e.printStackTrace();
              }
          }
          
      }


      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      uri2 should be set to "c:/svg/test.png"

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      init:
      javacc:
      compile:
      Compiling 1 source file to C:\dev\cvs.dev.java.net\svgsalamander\classes
      run-selected-files:
      java.lang.IllegalArgumentException
          at java.net.URI.create(URI.java:842)
          at java.net.URI.resolve(URI.java:1028)
          at com.NewMain.main(NewMain.java:32)
      Caused by: java.net.URISyntaxException: Illegal character in opaque part at index 2: C:\svg\test.png
          at java.net.URI$Parser.fail(URI.java:2809)
          at java.net.URI$Parser.checkChars(URI.java:2982)
          at java.net.URI$Parser.parse(URI.java:3019)
          at java.net.URI.<init>(URI.java:578)
          at java.net.URI.create(URI.java:840)
          ... 2 more
      BUILD SUCCESSFUL (total time: 0 seconds)


      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      /**
       *
       * @author kitfox
       */
      public class NewMain
      {
          
          /** Creates a new instance of NewMain */
          public NewMain()
          {
          }
          
          /**
           * @param args the command line arguments
           */
          public static void main(String[] args)
          {
              try
              {
                  URI uri = new URI("file:/C:/tmp/imagefade.svg");
                  String frag = "C:\\svg\\test.png";
                  URI uri2 = uri.resolve(frag);
                  System.err.println("" + uri2);
              }
              catch (Exception e)
              {
                  e.printStackTrace();
              }
          }
          
      }

      ---------- END SOURCE ----------
      ###@###.### 2005-1-21 06:33:14 GMT

            Unassigned Unassigned
            ndcosta Nelson Dcosta (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: