aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/net
diff options
context:
space:
mode:
authorChris Burdess <dog@gnu.org>2005-04-27 21:03:00 +0000
committerMichael Koch <mkoch@gcc.gnu.org>2005-04-27 21:03:00 +0000
commit32cf6a3bfe9f7512312a377648f13a437bb1a0c7 (patch)
treeb58fc962d6b987c3d38b9da9dd5fe177155c159a /libjava/java/net
parent529eec21bb28ef3de2ad7d0019c791e374a195ae (diff)
downloadgcc-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.java27
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();
}