Index: appserver/web/web-core/src/main/java/org/apache/catalina/loader/WebappLoader.java =================================================================== --- appserver/web/web-core/src/main/java/org/apache/catalina/loader/WebappLoader.java (revision 52699) +++ appserver/web/web-core/src/main/java/org/apache/catalina/loader/WebappLoader.java (working copy) @@ -618,6 +618,31 @@ } + private static synchronized void initStreamHandlerFactory() { + // Register a stream handler factory for the JNDI protocol + URLStreamHandlerFactory streamHandlerFactory = + new DirContextURLStreamHandlerFactory(); + + synchronized (WebappLoader.class) { + if (first) { + first = false; + try { + URL.setURLStreamHandlerFactory(streamHandlerFactory); + } catch (Exception e) { + // Log and continue anyway, this is not critical + log.log(Level.SEVERE, + "Error registering jndi stream handler", e); + } catch (Throwable t) { + // This is likely a dual registration + if (log.isLoggable(Level.FINE)) { + log.fine("Dual registration of jndi stream handler: " + + t.getMessage()); + } + } + } + } + } + /** * Start this component, initializing our associated class loader. * @@ -641,26 +666,7 @@ return; } // Register a stream handler factory for the JNDI protocol - URLStreamHandlerFactory streamHandlerFactory = - new DirContextURLStreamHandlerFactory(); - synchronized (WebappLoader.class) { - if (first) { - first = false; - try { - URL.setURLStreamHandlerFactory(streamHandlerFactory); - } catch (Exception e) { - // Log and continue anyway, this is not critical - log.log(Level.SEVERE, - "Error registering jndi stream handler", e); - } catch (Throwable t) { - // This is likely a dual registration - if (log.isLoggable(Level.FINE)) { - log.fine("Dual registration of jndi stream handler: " + - t.getMessage()); - } - } - } - } + initStreamHandlerFactory(); // Construct a class loader based on our current repositories list try {