diff options
author | Bryce McKinlay <mckinlay@redhat.com> | 2004-07-05 23:18:14 +0000 |
---|---|---|
committer | Bryce McKinlay <bryce@gcc.gnu.org> | 2004-07-06 00:18:14 +0100 |
commit | a1433c46a1347d2ada88ef8a940b132599d9adbc (patch) | |
tree | 1635a074c2ad50cd8bfb54b911d602de0d8e2c89 /libjava/gnu/gcj | |
parent | a86f03720b3e13269d3e1f1853df4239ef0ffef1 (diff) | |
download | gcc-a1433c46a1347d2ada88ef8a940b132599d9adbc.zip gcc-a1433c46a1347d2ada88ef8a940b132599d9adbc.tar.gz gcc-a1433c46a1347d2ada88ef8a940b132599d9adbc.tar.bz2 |
VMClassLoader.java (init): Check classpath entry before passing to URL constructor.
2004-07-05 Bryce McKinlay <mckinlay@redhat.com>
* gnu/gcj/runtime/VMClassLoader.java (init): Check classpath entry
before passing to URL constructor. Rethrow any MalformedURLException
as a RuntimeException. Catch MalformedURLException specifically, not
all exceptions.
From-SVN: r84138
Diffstat (limited to 'libjava/gnu/gcj')
-rw-r--r-- | libjava/gnu/gcj/runtime/VMClassLoader.java | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/libjava/gnu/gcj/runtime/VMClassLoader.java b/libjava/gnu/gcj/runtime/VMClassLoader.java index 5e7f4c8..1fc7081 100644 --- a/libjava/gnu/gcj/runtime/VMClassLoader.java +++ b/libjava/gnu/gcj/runtime/VMClassLoader.java @@ -47,58 +47,58 @@ public final class VMClassLoader extends java.net.URLClassLoader String e = st.nextToken (); try { - if (!e.endsWith (File.separator) && new File (e).isDirectory ()) + File path = new File(e); + // Ignore invalid paths. + if (!path.exists()) + continue; + if (!e.endsWith (File.separator) && path.isDirectory ()) addURL(new URL("file", "", -1, e + File.separator)); else addURL(new URL("file", "", -1, e)); } catch (java.net.MalformedURLException x) { - /* Ignore this path element */ + // This should never happen. + throw new RuntimeException(x); } } // Add the contents of the extensions directories. st = new StringTokenizer (System.getProperty ("java.ext.dirs"), System.getProperty ("path.separator", ":")); - while (st.hasMoreElements ()) + + try { - String dirname = st.nextToken (); - try + while (st.hasMoreElements ()) { + String dirname = st.nextToken (); File dir = new File (dirname); if (dir.exists ()) { if (! dirname.endsWith (File.separator)) - dirname = dirname + File.separator; + dirname = dirname + File.separator; String files[] - = dir.list (new FilenameFilter () + = dir.list (new FilenameFilter () { public boolean accept (File dir, String name) { - return (name.endsWith (".jar") - || name.endsWith (".zip")); + return (name.endsWith (".jar") + || name.endsWith (".zip")); } }); for (int i = files.length - 1; i >= 0; i--) - addURL(new URL("file", "", -1, dirname + files[i])); + addURL(new URL("file", "", -1, dirname + files[i])); } } - catch (Exception x) - { - // Just ignore any badness. - } - } - // Add core:/ to the end of the java.class.path so any resources - // compiled into this executable may be found. - try - { + // Add core:/ to the end of the java.class.path so any resources + // compiled into this executable may be found. addURL(new URL("core", "", -1, "/")); } catch (java.net.MalformedURLException x) { // This should never happen. + throw new RuntimeException(x); } } |