costin      01/07/19 14:43:02

  Modified:    src/share/org/apache/tomcat/util/compat Jdk11Compat.java
                        Jdk12Support.java
               src/share/org/apache/tomcat/util/xml XmlMapper.java
  Log:
  First part of the 2696 fix.
  
  Revision  Changes    Path
  1.6       +7 -1      
jakarta-tomcat/src/share/org/apache/tomcat/util/compat/Jdk11Compat.java
  
  Index: Jdk11Compat.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/util/compat/Jdk11Compat.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Jdk11Compat.java  2001/06/17 18:09:14     1.5
  +++ Jdk11Compat.java  2001/07/19 21:43:02     1.6
  @@ -61,6 +61,8 @@
   import org.apache.tomcat.util.depend.*;
   
   import java.net.URL;
  +import java.util.ResourceBundle;
  +import java.util.Locale;
   
   /** General-purpose utility to provide backward-compatibility and JDK
       independence. This allow use of JDK1.2 ( or higher ) facilities if
  @@ -124,7 +126,11 @@
       }
   
       // Other methods, as needed
  -        
  +
  +    public java.util.ResourceBundle getBundle(String name, Locale loc, ClassLoader 
cl ) {
  +     return ResourceBundle.getBundle(name, loc);
  +    }
  +    
   
       // -------------------- Factory -------------------- 
       /** Get a compatibiliy helper class.
  
  
  
  1.4       +10 -0     
jakarta-tomcat/src/share/org/apache/tomcat/util/compat/Jdk12Support.java
  
  Index: Jdk12Support.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/util/compat/Jdk12Support.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Jdk12Support.java 2001/06/17 18:09:13     1.3
  +++ Jdk12Support.java 2001/07/19 21:43:02     1.4
  @@ -118,6 +118,16 @@
           return null;
       }
   
  +    public java.util.ResourceBundle getBundle(String name, Locale loc, ClassLoader 
cl ) {
  +     if( cl==null )
  +         cl=getContextClassLoader();
  +     if( cl==null )
  +         return ResourceBundle.getBundle(name, loc);
  +     else
  +         return ResourceBundle.getBundle(name, loc, cl);
  +    }
  +    
  +
       // -------------------- Support --------------------
       static class PrivilegedProxy implements PrivilegedExceptionAction
       {
  
  
  
  1.35      +20 -1     
jakarta-tomcat/src/share/org/apache/tomcat/util/xml/XmlMapper.java
  
  Index: XmlMapper.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/util/xml/XmlMapper.java,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- XmlMapper.java    2001/07/16 00:20:57     1.34
  +++ XmlMapper.java    2001/07/19 21:43:02     1.35
  @@ -14,6 +14,7 @@
   import org.xml.sax.*;
   import org.xml.sax.helpers.*;
   
  +import org.apache.tomcat.util.compat.*;
   
   /**
    * SAX Handler - it will read the XML and construct java objects
  @@ -75,7 +76,7 @@
        throws SAXException
       {
        try {
  -         //      if( debug>0) log(sp + "<" + tag + " " + attributes + ">");
  +         if( debug>5) log(sp + " <" + tag + " " + attributes + ">");
            attributeStack[sp]=attributes;
            tagStack[sp]=tag;
            sp++;
  @@ -255,7 +256,14 @@
       public XmlMapper getMapper() {
        return this;
       }
  +
  +    boolean useLocalLoader=true;
       
  +    public void useLocalLoader(boolean b ) {
  +     useLocalLoader=b;
  +    }
  +    static final Jdk11Compat jdk11Compat=Jdk11Compat.getJdkCompat();
  +
       /** read an XML file, construct and return the object hierarchy
        */
       public Object readXml(File xmlFile, Object root)
  @@ -266,12 +274,23 @@
            this.pushObject( root );
        }
        try {
  +         // reset the context loader, so we find the parser in the current dir
  +         ClassLoader cl=null;
  +         if( useLocalLoader ) {
  +             cl=jdk11Compat.getContextClassLoader();
  +             jdk11Compat.setContextClassLoader( this.getClass().getClassLoader());
  +         }
  +         
            SAXParser parser=null;
            SAXParserFactory factory = SAXParserFactory.newInstance();
            factory.setNamespaceAware(false);
            factory.setValidating(validating);
            parser = factory.newSAXParser();
            parser.parse(xmlFile, this);
  +
  +         if( useLocalLoader && cl!= null ) {
  +             jdk11Compat.setContextClassLoader(cl);
  +         }
   
            return root;
            // assume the stack is in the right position.
  
  
  

Reply via email to