diff options
author | Michael Koch <konqueror@gmx.de> | 2003-12-20 22:54:26 +0000 |
---|---|---|
committer | Michael Koch <mkoch@gcc.gnu.org> | 2003-12-20 22:54:26 +0000 |
commit | 4e24f93733ee52bb1e38e5d1517f560dee9f5841 (patch) | |
tree | baad7842970f8dc0bdc488f3c0165a56f4edf055 /libjava/java/net/JarURLConnection.java | |
parent | 70d26e8152ceae744a8add22da6dd6326286f739 (diff) | |
download | gcc-4e24f93733ee52bb1e38e5d1517f560dee9f5841.zip gcc-4e24f93733ee52bb1e38e5d1517f560dee9f5841.tar.gz gcc-4e24f93733ee52bb1e38e5d1517f560dee9f5841.tar.bz2 |
2003-12-20 Michael Koch <konqueror@gmx.de>
* gnu/java/net/protocol/jar/Connection.java
(connectionCache): New field.
(connect): New method.
(getInputStream): New method.
(hdrHash): New field.
(hdrVec): New field.
(gotHeaders): New field.
(getHeaderField): New method.
(getHeaderFields): New method.
(getHeaderFieldKey): New method.
(getKey): New method.
(getField): New method.
(getHeaders): New method.
* java/net/JarURLConnection.java
(connectionCache): Removed.
(connect): Removed.
(getInputStream): Removed.
(hdrHash): Removed.
(hdrVec): Removed.
(gotHeaders): Removed.
(getHeaderField): Removed.
(getHeaderFields): Removed.
(getHeaderFieldKey): Removed.
(getKey): Removed.
(getField): Removed.
(getHeaders): Removed.
From-SVN: r74895
Diffstat (limited to 'libjava/java/net/JarURLConnection.java')
-rw-r--r-- | libjava/java/net/JarURLConnection.java | 228 |
1 files changed, 0 insertions, 228 deletions
diff --git a/libjava/java/net/JarURLConnection.java b/libjava/java/net/JarURLConnection.java index e8838f4..87d9db3 100644 --- a/libjava/java/net/JarURLConnection.java +++ b/libjava/java/net/JarURLConnection.java @@ -38,9 +38,6 @@ exception statement from your version. */ package java.net; -import java.io.BufferedInputStream; -import java.io.ByteArrayInputStream; -import java.io.InputStream; import java.io.IOException; import java.util.jar.Attributes; import java.util.jar.JarEntry; @@ -48,10 +45,6 @@ import java.util.jar.JarFile; import java.util.jar.JarInputStream; import java.util.jar.Manifest; import java.util.zip.ZipEntry; -import java.util.Map; -import java.util.Vector; -import java.util.HashMap; -import java.util.Hashtable; import java.security.cert.Certificate; /** @@ -101,11 +94,6 @@ public abstract class JarURLConnection extends URLConnection private final String entryName; /** - * Cached JarURLConnection objects . - */ - static HashMap connectionCache = new HashMap(); - - /** * Creates a JarURLConnection from an URL object * * @param URL url The URL object for this connection. @@ -157,97 +145,6 @@ public abstract class JarURLConnection extends URLConnection return entryName; } - public synchronized void connect() throws IOException - { - // Call is ignored if already connected. - if (connected) - return; - - if (getUseCaches()) - { - jarFileURLConnection = (URLConnection) connectionCache.get (jarFileURL); - - if (jarFileURLConnection == null) - { - jarFileURLConnection = jarFileURL.openConnection (); - jarFileURLConnection.setUseCaches (true); - jarFileURLConnection.connect (); - connectionCache.put (jarFileURL, jarFileURLConnection); - } - } - else - { - jarFileURLConnection = jarFileURL.openConnection (); - jarFileURLConnection.connect (); - } - - connected = true; - } - - public InputStream getInputStream() throws IOException - { - if (!connected) - connect(); - - if (! doInput) - throw new ProtocolException("Can't open InputStream if doInput is false"); - - if (entryName == null) - { - // This is a JarURLConnection for the entire jar file. - - InputStream jar_is = new BufferedInputStream( - jarFileURLConnection.getInputStream ()); - return new JarInputStream(jar_is); - } - - // Reaching this point, we're looking for an entry of a jar file. - - JarFile jarfile = null; - - try - { - jarfile = getJarFile (); - } - catch (IOException x) - { - /* ignore */ - } - - if (jarfile != null) - { - // this is the easy way... - ZipEntry entry = jarfile.getEntry (entryName); - - if (entry != null) - return jarfile.getInputStream (entry); - else - return null; - } - else - { - // If the jar file is not local, ... - JarInputStream zis = new JarInputStream( - jarFileURLConnection.getInputStream ()); - - // This is hideous, we're doing a linear search... - for (ZipEntry ent = zis.getNextEntry (); - ent != null; - ent = zis.getNextEntry ()) - { - if (entryName.equals (ent.getName())) - { - int size = (int)ent.getSize(); - byte[] data = new byte[size]; - zis.read (data, 0, size); - return new ByteArrayInputStream (data); - } - } - } - - return null; - } - /** * Returns the entry in this jar file specified by the URL. * @@ -308,131 +205,6 @@ public abstract class JarURLConnection extends URLConnection */ public abstract JarFile getJarFile () throws IOException; - // Steal and borrow from protocol/file/Connection.java - - private Hashtable hdrHash = new Hashtable(); - private Vector hdrVec = new Vector(); - private boolean gotHeaders = false; - - // Override default method in URLConnection. - public String getHeaderField(String name) - { - try - { - getHeaders(); - } - catch (IOException x) - { - return null; - } - return (String) hdrHash.get(name.toLowerCase()); - } - - // Override default method in URLConnection. - public Map getHeaderFields() - { - try - { - getHeaders(); - } - catch (IOException x) - { - return null; - } - return hdrHash; - } - - // Override default method in URLConnection. - public String getHeaderField(int n) - { - try - { - getHeaders(); - } - catch (IOException x) - { - return null; - } - if (n < hdrVec.size()) - return getField((String) hdrVec.elementAt(n)); - - return null; - } - - // Override default method in URLConnection. - public String getHeaderFieldKey(int n) - { - try - { - getHeaders(); - } - catch (IOException x) - { - return null; - } - if (n < hdrVec.size()) - return getKey((String) hdrVec.elementAt(n)); - - return null; - } - - private String getKey(String str) - { - if (str == null) - return null; - int index = str.indexOf(':'); - if (index >= 0) - return str.substring(0, index); - else - return null; - } - - private String getField(String str) - { - if (str == null) - return null; - int index = str.indexOf(':'); - if (index >= 0) - return str.substring(index + 1).trim(); - else - return str; - } - - private void getHeaders() throws IOException - { - if (gotHeaders) - return; - gotHeaders = true; - - connect(); - - // Yes, it is overkill to use the hash table and vector here since - // we're only putting one header in the file, but in case we need - // to add others later and for consistency, we'll implement it this way. - - // Add the only header we know about right now: Content-length. - long len = -1; - - if (entryName == null) - if (jarFileURLConnection != null) - len = jarFileURLConnection.getContentLength (); - else - { - JarEntry entry = getJarEntry(); - if (entry != null) - len = entry.getSize (); - } - - String line = "Content-length: " + len; - hdrVec.addElement(line); - - // The key will never be null in this scenario since we build up the - // headers ourselves. If we ever rely on getting a header from somewhere - // else, then we may have to check if the result of getKey() is null. - String key = getKey(line); - hdrHash.put(key.toLowerCase(), Long.toString(len)); - } - /** * Returns an array of Certificate objects for the jar file entry specified * by this URL or null if there are none |