summaryrefslogtreecommitdiff
path: root/libjava/gnu/gcj/runtime
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-13 20:20:56 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-13 20:20:56 +0000
commitd386f78b40ccdb8ed6413565614aa43cdf7fb40b (patch)
treed5eb1fe4fe005a7a6920cc5b76a76a68c276441b /libjava/gnu/gcj/runtime
parentb6b5460db3c71b23df415f5d50a2d876cae9601e (diff)
downloadgcc-d386f78b40ccdb8ed6413565614aa43cdf7fb40b.tar.gz
* 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
Diffstat (limited to 'libjava/gnu/gcj/runtime')
-rw-r--r--libjava/gnu/gcj/runtime/SystemClassLoader.java33
1 files changed, 30 insertions, 3 deletions
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);
+ }
+ }
}
}