luehe       2003/04/02 12:03:12

  Modified:    catalina/src/share/org/apache/catalina/startup
                        TldConfig.java
  Log:
  When searching parent class loaders for JAR files (for automatic TLD
  recognition), ignore any JAR files that don't exist
  
  Revision  Changes    Path
  1.5       +21 -11    
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/TldConfig.java
  
  Index: TldConfig.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/TldConfig.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TldConfig.java    28 Mar 2003 20:56:15 -0000      1.4
  +++ TldConfig.java    2 Apr 2003 20:03:11 -0000       1.5
  @@ -489,14 +489,13 @@
           } catch (Exception e) {
               // XXX Why do we wrap it ? The signature is 'throws Exception'
               if (name == null) {
  -                    log.error(sm.getString("contextConfig.tldJarException",
  -                                        jarPath, context.getPath()),
  -                           e);
  +             log.error(sm.getString("contextConfig.tldJarException",
  +                                    jarPath, context.getPath()),
  +                       e);
               } else {
  -                    log.error(sm.getString("contextConfig.tldEntryException",
  -                                        name, jarPath,
  -                                        context.getPath()),
  -                           e);
  +             log.error(sm.getString("contextConfig.tldEntryException",
  +                                    name, jarPath, context.getPath()),
  +                       e);
               }
           } finally {
               if (inputStream != null) {
  @@ -724,19 +723,30 @@
            if (loader instanceof URLClassLoader) {
                URL[] urls = ((URLClassLoader) loader).getURLs();
                for (int i=0; i<urls.length; i++) {
  +                 JarURLConnection jarConn = null;
                    URLConnection conn = urls[i].openConnection();
                    if (conn instanceof JarURLConnection) {
  -                     conn.setUseCaches(false);                       
  -                     globalJarPaths.add((JarURLConnection) conn);
  +                     jarConn = (JarURLConnection) conn;
                    } else {
                        String urlStr = urls[i].toString();
                        if (urlStr.startsWith("file:")
                                && urlStr.endsWith(".jar")) {
                            URL jarURL = new URL("jar:" + urlStr + "!/");
  -                         JarURLConnection jarConn = (JarURLConnection)
  -                             jarURL.openConnection();
  +                         jarConn = (JarURLConnection) jarURL.openConnection();
  +                     }
  +                 }
  +                 if (jarConn != null) {
  +                     try {
  +                         /*
  +                          * Call getJarFile() to see if JAR file exists
  +                          * (throws exception in case it doesn't)
  +                          */
  +                         jarConn.getJarFile();
                            jarConn.setUseCaches(false);
                            globalJarPaths.add(jarConn);
  +                     } catch (Exception e) {
  +                         // Ignore any JAR files that may have been
  +                         // specified on the class path but don't exist
                        }
                    }
                }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to