You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2002/02/11 23:24:28 UTC

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources DirContextURLStreamHandler.java

remm        02/02/11 14:24:28

  Modified:    catalina/src/share/org/apache/naming/resources
                        DirContextURLStreamHandler.java
  Log:
  - Update the algortithm, weighting it towards trying the context CL association
    first (since that's what is used now in Catalina). In some very special cases,
    the thread binding will be checked, as well as the parent classloader.
  
  Revision  Changes    Path
  1.6       +24 -8     jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/DirContextURLStreamHandler.java
  
  Index: DirContextURLStreamHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/DirContextURLStreamHandler.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DirContextURLStreamHandler.java	2 Jun 2001 20:24:27 -0000	1.5
  +++ DirContextURLStreamHandler.java	11 Feb 2002 22:24:28 -0000	1.6
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/DirContextURLStreamHandler.java,v 1.5 2001/06/02 20:24:27 remm Exp $
  - * $Revision: 1.5 $
  - * $Date: 2001/06/02 20:24:27 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/DirContextURLStreamHandler.java,v 1.6 2002/02/11 22:24:28 remm Exp $
  + * $Revision: 1.6 $
  + * $Date: 2002/02/11 22:24:28 $
    *
    * ====================================================================
    *
  @@ -75,7 +75,7 @@
    * Stream handler to a JNDI directory context.
    * 
    * @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
  - * @version $Revision: 1.5 $
  + * @version $Revision: 1.6 $
    */
   public class DirContextURLStreamHandler 
       extends URLStreamHandler {
  @@ -207,18 +207,34 @@
        * Get the bound context.
        */
       public static DirContext get() {
  +
           DirContext result = null;
  +
           Thread currentThread = Thread.currentThread();
  -        result = (DirContext) threadBindings.get(currentThread);
           ClassLoader currentCL = currentThread.getContextClassLoader();
  -        while ((result == null) && (currentCL != null)) {
  +
  +        // Checking CL binding
  +        result = (DirContext) clBindings.get(currentCL);
  +        if (result != null)
  +            return result;
  +
  +        // Checking thread biding
  +        result = (DirContext) threadBindings.get(currentThread);
  +
  +        // Checking parent CL binding
  +        currentCL = currentCL.getParent();
  +        while (currentCL != null) {
               result = (DirContext) clBindings.get(currentCL);
  -            if (result == null)
  -                currentCL = currentCL.getParent();
  +            if (result != null)
  +                return result;
  +            currentCL = currentCL.getParent();
           }
  +
           if (result == null)
               throw new IllegalStateException("Illegal class loader binding");
  +
           return result;
  +
       }
       
       
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>