tmiller     02/03/01 13:34:40

  Modified:    java/src/org/apache/xalan/xsltc/runtime Tag:
                        jaxp-ri-1_2_0-beta-branch TransletLoader.java
  Log:
  bugtraq #4644811, Tomcat and ext java classes, Santiago Pericas
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.6.1   +13 -8     
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/TransletLoader.java
  
  Index: TransletLoader.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/TransletLoader.java,v
  retrieving revision 1.1
  retrieving revision 1.1.6.1
  diff -u -r1.1 -r1.1.6.1
  --- TransletLoader.java       8 Nov 2001 14:11:15 -0000       1.1
  +++ TransletLoader.java       1 Mar 2002 21:34:39 -0000       1.1.6.1
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TransletLoader.java,v 1.1 2001/11/08 14:11:15 morten Exp $
  + * @(#)$Id: TransletLoader.java,v 1.1.6.1 2002/03/01 21:34:39 tmiller Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -57,6 +57,7 @@
    * <http://www.apache.org/>.
    *
    * @author Morten Jorgensen
  + * @author Santiago Pericas-Geertsen
    *
    */
   
  @@ -64,6 +65,9 @@
   
   import java.lang.Class;
   import java.lang.ClassLoader;
  +import java.lang.Thread;
  +
  +import java.net.*;   // temporary
   
   /**
    * This class is intended used when the default Class.forName() method fails.
  @@ -91,14 +95,14 @@
        * Get a handle to the system class loader
        */
       public TransletLoader() {
  -     // Get the default class loader
  -     ClassLoader loader = this.getClass().getClassLoader();
  -     // If this is the extensions class loader we need to get the
  -     // default system class loader instead. This is permitted if
  -     // this class was loaded by the extensions class loader.
  -     String loaderName = loader.getClass().getName();
  -     if (loaderName.equals("sun.misc.Launcher$ExtClassLoader"))
  +     // Get the loader for the current thread (not the current class)
  +     ClassLoader loader = Thread.currentThread().getContextClassLoader();
  +
  +     // Avoid using the extensions class loader (see comment above)
  +     final String loaderName = loader.getClass().getName();
  +     if (loaderName.equals("sun.misc.Launcher$ExtClassLoader")) {
            loader = ClassLoader.getSystemClassLoader();
  +     }
        _loader = loader;
       }
   
  @@ -108,6 +112,7 @@
       public Class loadClass(String name) throws ClassNotFoundException {
        return(Class.forName(name, false, _loader));
       }
  +
       /**
        * Loads a Class definition and runs static initializers.
        */
  
  
  

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

Reply via email to