diff options
author | Michael Koch <konqueror@gmx.de> | 2004-01-04 21:10:42 +0000 |
---|---|---|
committer | Michael Koch <konqueror@gmx.de> | 2004-01-04 21:10:42 +0000 |
commit | f26bbbb50440b176c2c52b4f77202f048c4ef1e0 (patch) | |
tree | df8ac38597e4e405e9e2e7711011c650f8c84ecd /gnu/java/net | |
parent | 6b9b26d3ad7de847b0fde28390b1fbc25a579bc2 (diff) | |
download | classpath-f26bbbb50440b176c2c52b4f77202f048c4ef1e0.tar.gz |
2004-01-04 Michael Koch <konqueror@gmx.de>
* java/net/JarURLConnection.java
(jarFileURLConnection): New field.
* gnu/java/net/protocol/jar/Connection.java
(Connection): Made class final.
(Connection): Made constructor protected.
(getJarFile): Check doInput.
(getInputStream): Likewise.
Diffstat (limited to 'gnu/java/net')
-rw-r--r-- | gnu/java/net/protocol/jar/Connection.java | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/gnu/java/net/protocol/jar/Connection.java b/gnu/java/net/protocol/jar/Connection.java index fd3f54bee..29b8bd694 100644 --- a/gnu/java/net/protocol/jar/Connection.java +++ b/gnu/java/net/protocol/jar/Connection.java @@ -44,6 +44,7 @@ import java.io.InputStream; import java.io.IOException; import java.net.JarURLConnection; import java.net.MalformedURLException; +import java.net.ProtocolException; import java.net.URL; import java.net.URLConnection; import java.util.Hashtable; @@ -57,7 +58,7 @@ import java.util.zip.ZipFile; * * @author Kresten Krab Thorup <krab@gnu.org> */ -public class Connection extends JarURLConnection +public final class Connection extends JarURLConnection { private JarFile jar_file; private JarEntry jar_entry; @@ -120,17 +121,18 @@ public class Connection extends JarURLConnection } } - public Connection(URL url) + protected Connection(URL url) throws MalformedURLException { super(url); } - - public void connect() throws IOException + + public synchronized void connect() throws IOException { + // Call is ignored if already connected. if (connected) return; - + jar_url = getJarFileURL(); jar_file = JarFileCache.get (jar_url); String entry_name = getEntryName(); @@ -143,29 +145,35 @@ public class Connection extends JarURLConnection if(jar_entry == null) throw new IOException ("No entry for " + entry_name + " exists."); } - + connected = true; } - - public JarFile getJarFile() throws IOException - { - if (!connected) - connect(); - - return jar_file; - } - + public InputStream getInputStream() throws IOException { if (!connected) connect(); + + if (! doInput) + throw new ProtocolException("Can't open InputStream if doInput is false"); if (jar_entry == null) throw new IOException (jar_url + " couldn't be found."); return jar_file.getInputStream (jar_entry); } - + + public synchronized JarFile getJarFile() throws IOException + { + if (!connected) + connect(); + + if (! doInput) + throw new ProtocolException("Can't open JarFile if doInput is false"); + + return jar_file; + } + public int getContentLength() { if (!connected) |