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;
}