7191547: XMLEventFactory.newFactory(String factoryId, ClassLoader loader) does not work as expected

Similar to the patch for 6756677 for XMLInputFactory and XMLOutputFactory, this patch fixes an error in XMLEventFactory where factoryId was taken as factory class.

Reviewed-by: lancea
This commit is contained in:
Joe Wang 2012-08-17 09:49:42 -07:00
parent 9e31be3e8d
commit 5d2e65169c

View File

@ -49,6 +49,10 @@ import java.util.Iterator;
public abstract class XMLEventFactory {
protected XMLEventFactory(){}
static final String JAXPFACTORYID = "javax.xml.stream.XMLEventFactory";
static final String DEFAULIMPL = "com.sun.xml.internal.stream.events.XMLEventFactoryImpl";
/**
* Create a new instance of the factory
* @throws FactoryConfigurationError if an instance of this factory cannot be loaded
@ -57,8 +61,8 @@ public abstract class XMLEventFactory {
throws FactoryConfigurationError
{
return (XMLEventFactory) FactoryFinder.find(
"javax.xml.stream.XMLEventFactory",
"com.sun.xml.internal.stream.events.XMLEventFactoryImpl");
JAXPFACTORYID,
DEFAULIMPL);
}
/**
@ -90,8 +94,8 @@ public abstract class XMLEventFactory {
throws FactoryConfigurationError
{
return (XMLEventFactory) FactoryFinder.find(
"javax.xml.stream.XMLEventFactory",
"com.sun.xml.internal.stream.events.XMLEventFactoryImpl");
JAXPFACTORYID,
DEFAULIMPL);
}
/**
@ -114,7 +118,7 @@ public abstract class XMLEventFactory {
throws FactoryConfigurationError {
try {
//do not fallback if given classloader can't find the class, throw exception
return (XMLEventFactory) FactoryFinder.newInstance(factoryId, classLoader, false);
return (XMLEventFactory) FactoryFinder.find(factoryId, classLoader, null);
} catch (FactoryFinder.ConfigurationError e) {
throw new FactoryConfigurationError(e.getException(),
e.getMessage());
@ -141,7 +145,7 @@ public abstract class XMLEventFactory {
throws FactoryConfigurationError {
try {
//do not fallback if given classloader can't find the class, throw exception
return (XMLEventFactory) FactoryFinder.newInstance(factoryId, classLoader, false);
return (XMLEventFactory) FactoryFinder.find(factoryId, classLoader, null);
} catch (FactoryFinder.ConfigurationError e) {
throw new FactoryConfigurationError(e.getException(),
e.getMessage());