diff --git a/java/external/src/javax/xml/parsers/FactoryFinder.java b/java/external/src/javax/xml/parsers/FactoryFinder.java index 26147c7..a41ac66 100644 --- a/java/external/src/javax/xml/parsers/FactoryFinder.java +++ b/java/external/src/javax/xml/parsers/FactoryFinder.java @@ -105,7 +105,12 @@ class FactoryFinder { 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; } diff --git a/java/external/src/javax/xml/transform/FactoryFinder.java b/java/external/src/javax/xml/transform/FactoryFinder.java index 1c9f5a8..c7542c2 100644 --- a/java/external/src/javax/xml/transform/FactoryFinder.java +++ b/java/external/src/javax/xml/transform/FactoryFinder.java @@ -105,7 +105,12 @@ class FactoryFinder { 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; }