classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cp-patches] Patch: FYI: URLClassLoader.toString()


From: Tom Tromey
Subject: [cp-patches] Patch: FYI: URLClassLoader.toString()
Date: 09 Mar 2005 12:09:35 -0700
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50

I'm checking this in.

URLClassLoader.toString() keeps a cache but neglects to clear it
when a new URL is added.

Tom

Index: ChangeLog
from  Tom Tromey  <address@hidden>

        * java/net/URLClassLoader.java (addURLImpl): Reset 'thisString'.
        (toString): Synchronize.

Index: java/net/URLClassLoader.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/net/URLClassLoader.java,v
retrieving revision 1.27
diff -u -r1.27 URLClassLoader.java
--- java/net/URLClassLoader.java 16 Feb 2005 23:11:06 -0000 1.27
+++ java/net/URLClassLoader.java 9 Mar 2005 19:03:51 -0000
@@ -799,6 +799,9 @@
         if (newUrl == null)
           return; // Silently ignore...
 
+       // Reset the toString() value.
+       thisString = null;
+
         // Check global cache to see if there're already url loader
         // for this url.
         URLLoader loader = (URLLoader) urlloaders.get(newUrl);
@@ -1020,25 +1023,28 @@
    */
   public String toString()
   {
-    if (thisString == null)
+    synchronized (urlloaders)
       {
-       StringBuffer sb = new StringBuffer();
-       sb.append(this.getClass().getName());
-       sb.append("{urls=[" );
-       URL[] thisURLs = getURLs();
-       for (int i = 0; i < thisURLs.length; i++)
+       if (thisString == null)
          {
-           sb.append(thisURLs[i]);
-           if (i < thisURLs.length - 1)
-             sb.append(',');
+           StringBuffer sb = new StringBuffer();
+           sb.append(this.getClass().getName());
+           sb.append("{urls=[" );
+           URL[] thisURLs = getURLs();
+           for (int i = 0; i < thisURLs.length; i++)
+             {
+               sb.append(thisURLs[i]);
+               if (i < thisURLs.length - 1)
+                 sb.append(',');
+             }
+           sb.append(']');
+           sb.append(", parent=");
+           sb.append(getParent());
+           sb.append('}');
+           thisString = sb.toString();
          }
-       sb.append(']');
-       sb.append(", parent=");
-       sb.append(getParent());
-       sb.append('}');
-       thisString = sb.toString();
+       return thisString;
       }
-    return thisString;
   }
 
   /**




reply via email to

[Prev in Thread] Current Thread [Next in Thread]