diff options
| author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-05-13 20:20:56 +0000 |
|---|---|---|
| committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-05-13 20:20:56 +0000 |
| commit | d386f78b40ccdb8ed6413565614aa43cdf7fb40b (patch) | |
| tree | d5eb1fe4fe005a7a6920cc5b76a76a68c276441b | |
| parent | b6b5460db3c71b23df415f5d50a2d876cae9601e (diff) | |
| download | ppe42-gcc-d386f78b40ccdb8ed6413565614aa43cdf7fb40b.tar.gz ppe42-gcc-d386f78b40ccdb8ed6413565614aa43cdf7fb40b.zip | |
* gnu/gcj/runtime/SystemClassLoader.java (init): Handle empty
element in path.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99676 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | libjava/ChangeLog | 5 | ||||
| -rw-r--r-- | libjava/gnu/gcj/runtime/SystemClassLoader.java | 33 |
2 files changed, 35 insertions, 3 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 469bb76bc2a..93060faf3c8 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -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. diff --git a/libjava/gnu/gcj/runtime/SystemClassLoader.java b/libjava/gnu/gcj/runtime/SystemClassLoader.java index 163d3dd84d7..e68770cc558 100644 --- a/libjava/gnu/gcj/runtime/SystemClassLoader.java +++ b/libjava/gnu/gcj/runtime/SystemClassLoader.java @@ -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); + } + } } } |

