You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-cvs@xml.apache.org by ne...@apache.org on 2003/02/12 21:06:39 UTC

cvs commit: xml-commons/java/external/src/javax/xml/transform FactoryFinder.java

neilg       2003/02/12 12:06:38

  Modified:    java/external/src/org/xml/sax/helpers Tag: tck-jaxp-1_2_0
                        NewInstance.java
               java/external/src/javax/xml/parsers Tag: tck-jaxp-1_2_0
                        FactoryFinder.java
               java/external/src/javax/xml/transform Tag: tck-jaxp-1_2_0
                        FactoryFinder.java
  Log:
  Under some JDK's (notably both Sun and IBM 1.4.0), getClassLoader(), when invoked
  on the JAXP or SAX classes, it returns null.  This means that
  the fallback mechanism in these API's may not work correctly:  in
  particular, when an attempt to invoke an unknown Parser/XMLReader
  implementation is made in SAX, a NullPointerException rather than the correct
  ClassNotFoundException results.  This patch fixes this problem,
  by using Class.forName() in the event that the bootstrap
  classloader is not returned in this particular situation.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.8.2   +6 -3      xml-commons/java/external/src/org/xml/sax/helpers/NewInstance.java
  
  Index: NewInstance.java
  ===================================================================
  RCS file: /home/cvs/xml-commons/java/external/src/org/xml/sax/helpers/NewInstance.java,v
  retrieving revision 1.1.8.1
  retrieving revision 1.1.8.2
  diff -u -r1.1.8.1 -r1.1.8.2
  --- NewInstance.java	12 Dec 2002 16:44:16 -0000	1.1.8.1
  +++ NewInstance.java	12 Feb 2003 20:06:38 -0000	1.1.8.2
  @@ -73,7 +73,10 @@
                   if (DO_FALLBACK) {
                       // Fall back to current classloader
                       cl = NewInstance.class.getClassLoader();
  -                    providerClass = cl.loadClass(className);
  +                    if(cl != null ) 
  +                        providerClass = cl.loadClass(className);
  +                    else
  +                        providerClass = Class.forName(className);
                   } else {
                       throw x;
                   }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.7.6.5   +4 -1      xml-commons/java/external/src/javax/xml/parsers/FactoryFinder.java
  
  Index: FactoryFinder.java
  ===================================================================
  RCS file: /home/cvs/xml-commons/java/external/src/javax/xml/parsers/FactoryFinder.java,v
  retrieving revision 1.7.6.4
  retrieving revision 1.7.6.5
  diff -u -r1.7.6.4 -r1.7.6.5
  --- FactoryFinder.java	3 Feb 2003 16:10:05 -0000	1.7.6.4
  +++ FactoryFinder.java	12 Feb 2003 20:06:38 -0000	1.7.6.5
  @@ -282,7 +282,10 @@
                       if (doFallback) {
                           // Fall back to current classloader
                           cl = FactoryFinder.class.getClassLoader();
  -                        providerClass = cl.loadClass(className);
  +                        if(cl != null)
  +                            providerClass = cl.loadClass(className);
  +                        else
  +                            providerClass = Class.forName(className);
                       } else {
                           throw x;
                       }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.7.6.5   +4 -1      xml-commons/java/external/src/javax/xml/transform/FactoryFinder.java
  
  Index: FactoryFinder.java
  ===================================================================
  RCS file: /home/cvs/xml-commons/java/external/src/javax/xml/transform/FactoryFinder.java,v
  retrieving revision 1.7.6.4
  retrieving revision 1.7.6.5
  diff -u -r1.7.6.4 -r1.7.6.5
  --- FactoryFinder.java	3 Feb 2003 16:10:05 -0000	1.7.6.4
  +++ FactoryFinder.java	12 Feb 2003 20:06:38 -0000	1.7.6.5
  @@ -282,7 +282,10 @@
                       if (doFallback) {
                           // Fall back to current classloader
                           cl = FactoryFinder.class.getClassLoader();
  -                        providerClass = cl.loadClass(className);
  +                        if(cl != null)
  +                            providerClass = cl.loadClass(className);
  +                        else
  +                            providerClass = Class.forName(className);
                       } else {
                           throw x;
                       }