2003-08-02 Michael Koch <konqueror@gmx.de>
* java/net/URL.java (URL): Added paragraph about the gnu.java.net.nocache_protocol_handlers property. (ph_cache): Renamed from handlers to match classpath's implementation. Reordered it with factory and serialVersionUID member variables. (cache_handlers): New member variable. (static): New static initializer to initialize cache_handlers from gnu.java.net.nocache_protocol_handlers property. (URL): Use ph_cache instead of handlers, reformatted some code to match classpath's implementation. From-SVN: r70098
This commit is contained in:
parent
f53b62e15c
commit
15b68e0201
@ -1,3 +1,16 @@
|
||||
2003-08-02 Michael Koch <konqueror@gmx.de>
|
||||
|
||||
* java/net/URL.java
|
||||
(URL): Added paragraph about the
|
||||
gnu.java.net.nocache_protocol_handlers property.
|
||||
(ph_cache): Renamed from handlers to match classpath's implementation.
|
||||
Reordered it with factory and serialVersionUID member variables.
|
||||
(cache_handlers): New member variable.
|
||||
(static): New static initializer to initialize cache_handlers from
|
||||
gnu.java.net.nocache_protocol_handlers property.
|
||||
(URL): Use ph_cache instead of handlers, reformatted some code to
|
||||
match classpath's implementation.
|
||||
|
||||
2003-08-01 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
Fix for PR libgcj/11241:
|
||||
|
@ -98,6 +98,14 @@ import java.util.StringTokenizer;
|
||||
* <p>
|
||||
* Please note that a protocol handler must be a subclass of
|
||||
* URLStreamHandler.
|
||||
* <p>
|
||||
* Normally, this class caches protocol handlers. Once it finds a handler
|
||||
* for a particular protocol, it never tries to look up a new handler
|
||||
* again. However, if the system property
|
||||
* gnu.java.net.nocache_protocol_handlers is set, then this
|
||||
* caching behavior is disabled. This property is specific to this
|
||||
* implementation. Sun's JDK may or may not do protocol caching, but it
|
||||
* almost certainly does not examine this property.
|
||||
*
|
||||
* @author Aaron M. Renn <arenn@urbanophile.com>
|
||||
* @author Warren Levy <warrenl@cygnus.com>
|
||||
@ -149,12 +157,6 @@ public final class URL implements Serializable
|
||||
*/
|
||||
transient URLStreamHandler ph;
|
||||
|
||||
/**
|
||||
* This a table where we cache protocol handlers to avoid the overhead
|
||||
* of looking them up each time.
|
||||
*/
|
||||
private static Hashtable handlers = new Hashtable();
|
||||
|
||||
/**
|
||||
* If an application installs its own protocol handler factory, this is
|
||||
* where we keep track of it.
|
||||
@ -163,6 +165,26 @@ public final class URL implements Serializable
|
||||
|
||||
private static final long serialVersionUID = -7627629688361524110L;
|
||||
|
||||
/**
|
||||
* This a table where we cache protocol handlers to avoid the overhead
|
||||
* of looking them up each time.
|
||||
*/
|
||||
private static Hashtable ph_cache = new Hashtable();
|
||||
|
||||
/**
|
||||
* Whether or not to cache protocol handlers.
|
||||
*/
|
||||
private static boolean cache_handlers;
|
||||
|
||||
static
|
||||
{
|
||||
String s = System.getProperty("gnu.java.net.nocache_protocol_handlers");
|
||||
if (s == null)
|
||||
cache_handlers = true;
|
||||
else
|
||||
cache_handlers = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a URL and loads a protocol handler for the values passed as
|
||||
* arguments.
|
||||
@ -732,12 +754,14 @@ public final class URL implements Serializable
|
||||
URLStreamHandler ph;
|
||||
|
||||
// See if a handler has been cached for this protocol.
|
||||
if ((ph = (URLStreamHandler) handlers.get(protocol)) != null)
|
||||
if ((ph = (URLStreamHandler) ph_cache.get(protocol)) != null)
|
||||
return ph;
|
||||
|
||||
// If a non-default factory has been set, use it to find the protocol.
|
||||
if (factory != null)
|
||||
ph = factory.createURLStreamHandler(protocol);
|
||||
{
|
||||
ph = factory.createURLStreamHandler(protocol);
|
||||
}
|
||||
else if (protocol.equals ("core"))
|
||||
{
|
||||
ph = new gnu.gcj.protocol.core.Handler ();
|
||||
@ -788,9 +812,10 @@ public final class URL implements Serializable
|
||||
}
|
||||
|
||||
// Update the hashtable with the new protocol handler.
|
||||
if (ph != null)
|
||||
if (ph != null
|
||||
&& cache_handlers)
|
||||
if (ph instanceof URLStreamHandler)
|
||||
handlers.put(protocol, ph);
|
||||
ph_cache.put(protocol, ph);
|
||||
else
|
||||
ph = null;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user