Hi,

I committed the attached "optimization" to the URL construction in
JarURLLoader. Not really to improve performance, but to make Google's
new Google Web Toolkit shell startup (it's broken and does an identity
comparison on the string returned by URL.getProtocol()).

Regards,
Jeroen

2006-05-18  Jeroen Frijters  <[EMAIL PROTECTED]>

        * gnu/java/net/loader/JarURLLoader.java
        (JarURLLoader): Use a slightly more efficient URL constructor.
Index: gnu/java/net/loader/JarURLLoader.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/java/net/loader/JarURLLoader.java,v
retrieving revision 1.1
diff -u -r1.1 JarURLLoader.java
--- gnu/java/net/loader/JarURLLoader.java       15 May 2006 23:29:36 -0000      
1.1
+++ gnu/java/net/loader/JarURLLoader.java       18 May 2006 11:45:30 -0000
@@ -32,20 +32,14 @@
   {
     super(classloader, cache, factory, baseURL, absoluteUrl);
 
-    // Cache url prefix for all resources in this jar url.
-    String external = baseURL.toExternalForm();
-    StringBuffer sb = new StringBuffer(external.length() + 6);
-    sb.append("jar:");
-    sb.append(external);
-    sb.append("!/");
-    String jarURL = sb.toString();
-
     this.classPath = null;
     URL baseJarURL = null;
     JarFile jarfile = null;
     try
       {
-        baseJarURL = new URL(null, jarURL, cache.get(factory, "jar"));
+        // Cache url prefix for all resources in this jar url.
+        String base = baseURL.toExternalForm() + "!/";
+        baseJarURL = new URL("jar", "", -1, base, cache.get(factory, "jar"));
         
         jarfile =
           ((JarURLConnection) baseJarURL.openConnection()).getJarFile();

Reply via email to