* gnu/gcj/runtime/SystemClassLoader.java (init): Handle empty
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 May 2005 20:20:56 +0000 (20:20 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 May 2005 20:20:56 +0000 (20:20 +0000)
element in path.

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

libjava/ChangeLog
libjava/gnu/gcj/runtime/SystemClassLoader.java

index 469bb76..93060fa 100644 (file)
@@ -1,3 +1,8 @@
+2005-05-13  Tom Tromey  <tromey@redhat.com>
+
+       * gnu/gcj/runtime/SystemClassLoader.java (init): Handle empty
+       element in path.
+
 2005-05-12  Bryce McKinlay  <mckinlay@redhat.com>
 
        * include/jvm.h (gcj::verifyClasses): Declare.
index 163d3dd..e68770c 100644 (file)
@@ -27,16 +27,30 @@ public final class SystemClassLoader extends URLClassLoader
   // causing a crash.
   void init()
   {
+    String sep = File.pathSeparator;
     StringTokenizer st
       = new StringTokenizer (System.getProperty ("java.class.path", "."),
-                            File.pathSeparator);
+                            sep, true);
+    // Pretend we start with a ':', so if we see a ':' first we add
+    // '.'.
+    boolean last_was_sep = true;
     while (st.hasMoreElements ()) 
       {  
        String e = st.nextToken ();
        try
          {
-           if ("".equals(e))
-             e = ".";
+           if (sep.equals(e))
+             {
+               if (last_was_sep)
+                 {
+                   // We saw two separators in a row, so add ".".
+                   addURL(new URL("file", "", -1, "./"));
+                   last_was_sep = false;
+                 }
+               else
+                 last_was_sep = true;
+               continue;
+             }
 
            File path = new File(e);
            // Ignore invalid paths.
@@ -53,5 +67,18 @@ public final class SystemClassLoader extends URLClassLoader
            throw new RuntimeException(x);
          }
       }
+    // If we saw a trailing ":", add "." to the path.
+    if (last_was_sep)
+      {
+       try
+         {
+           addURL(new URL("file", "", -1, "./"));
+         }
+       catch (java.net.MalformedURLException x)
+         {
+           // This should never happen.
+           throw new RuntimeException(x);
+         }
+      }
   }
 }