PR libgcj/20198
authorgreen <green@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Sep 2005 22:57:10 +0000 (22:57 +0000)
committergreen <green@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Sep 2005 22:57:10 +0000 (22:57 +0000)
        * java/net/URLClassLoader.java (FileURLLoader.getResource): File
        resources should all have canonicalized names.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104360 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/java/net/URLClassLoader.java

index 3520d8c..7777f3a 100644 (file)
@@ -1,3 +1,9 @@
+2005-09-16  Anthony Green  <green@redhat.com>
+
+       PR libgcj/20198
+       * java/net/URLClassLoader.java (FileURLLoader.getResource): File
+       resources should all have canonicalized names.
+
 2005-09-15  Tom Tromey  <tromey@redhat.com>
 
        PR libgcj/16032:
index 5d48c02..2a6f87c 100644 (file)
@@ -610,9 +610,16 @@ public class URLClassLoader extends SecureClassLoader
     /** get resource with the name "name" in the file url */
     Resource getResource(String name)
     {
-      File file = new File(dir, name);
-      if (file.exists())
-        return new FileResource(this, name, file);
+      try 
+       {
+         File file = new File(dir, name).getCanonicalFile();
+         if (file.exists() && !file.isDirectory())
+           return new FileResource(this, file.path(), file);
+       }
+      catch (IOException e)
+       {
+         // Fall through...
+       }
       return null;
     }
   }