diff options
author | Chris Burdess <dog@gnu.org> | 2005-04-27 21:03:00 +0000 |
---|---|---|
committer | Michael Koch <mkoch@gcc.gnu.org> | 2005-04-27 21:03:00 +0000 |
commit | 32cf6a3bfe9f7512312a377648f13a437bb1a0c7 (patch) | |
tree | b58fc962d6b987c3d38b9da9dd5fe177155c159a /libjava/java/net | |
parent | 529eec21bb28ef3de2ad7d0019c791e374a195ae (diff) | |
download | gcc-32cf6a3bfe9f7512312a377648f13a437bb1a0c7.zip gcc-32cf6a3bfe9f7512312a377648f13a437bb1a0c7.tar.gz gcc-32cf6a3bfe9f7512312a377648f13a437bb1a0c7.tar.bz2 |
Connection.java: Return correct content length for directory listing.
2005-04-27 Chris Burdess <dog@gnu.org>
* gnu/java/net/protocol/file/Connection.java: Return correct content
length for directory listing.
* java/net/URLClassLoader.java: Correction for URLClassLoader, bug
#11285: return valid URLs for directories.i
From-SVN: r98884
Diffstat (limited to 'libjava/java/net')
-rw-r--r-- | libjava/java/net/URLClassLoader.java | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/libjava/java/net/URLClassLoader.java b/libjava/java/net/URLClassLoader.java index 9593e7d..4b95998 100644 --- a/libjava/java/net/URLClassLoader.java +++ b/libjava/java/net/URLClassLoader.java @@ -610,7 +610,7 @@ public class URLClassLoader extends SecureClassLoader Resource getResource(String name) { File file = new File(dir, name); - if (file.exists() && ! file.isDirectory()) + if (file.exists()) return new FileResource(this, name, file); return null; } @@ -628,11 +628,36 @@ public class URLClassLoader extends SecureClassLoader InputStream getInputStream() throws IOException { + // Delegate to the URL content handler mechanism to retrieve an + // HTML representation of the directory listing if a directory + if (file.isDirectory()) + { + URL url = getURL(); + return url.openStream(); + } + // Otherwise simply return a FileInputStream return new FileInputStream(file); } public int getLength() { + // Delegate to the URL content handler mechanism to retrieve the + // length of the HTML representation of the directory listing if + // a directory, or -1 if an exception occurs opening the directory. + if (file.isDirectory()) + { + URL url = getURL(); + try + { + URLConnection connection = url.openConnection(); + return connection.getContentLength(); + } + catch (IOException e) + { + return -1; + } + } + // Otherwise simply return the file length return (int) file.length(); } |