[jboss-jira] [JBoss JIRA] Issue Comment Edited: (AS7-837) Web parsing may fail due to XMLInputFactory could not be instantiated
Thomas Diesler (JIRA)
jira-events at lists.jboss.org
Wed May 25 08:22:01 EDT 2011
[ https://issues.jboss.org/browse/AS7-837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12604275#comment-12604275 ]
Thomas Diesler edited comment on AS7-837 at 5/25/11 8:21 AM:
-------------------------------------------------------------
There are many occurances of this
{code}
[tdiesler at tdvaio jboss-as]$ git grep XMLInputFactory.newInstance
clustering/src/test/java/org/jboss/as/clustering/infinispan/subsystem/InfinispanSubsystemParserTest.java: XMLStreamReader reader = X
clustering/src/test/java/org/jboss/as/clustering/jgroups/subsystem/JGroupsSubsystemParserTest.java: XMLStreamReader reader = XMLInpu
controller/src/main/java/org/jboss/as/controller/persistence/XmlConfigurationPersister.java: XMLStreamReader streamReader =
controller/src/test/java/org/jboss/as/controller/parsing/Jbas9020TestCase.java: final XMLStreamReader reader = XMLInputFactory.newIn
controller/src/test/java/org/jboss/as/controller/parsing/Jbas9020TestCase.java: final XMLStreamReader reader = XMLInputFactory.newIn
controller/src/test/java/org/jboss/as/controller/parsing/Jbas9020TestCase.java: final XMLStreamReader reader = XMLInputFactory.newIn
ee/src/main/java/org/jboss/as/ee/structure/EarMetaDataParsingProcessor.java: final XMLInputFactory inputFactory = XMLInputFactor
ee/src/main/java/org/jboss/as/ee/structure/JBossAppMetaDataParsingProcessor.java: final XMLInputFactory inputFactory = XMLInputF
ejb3/src/main/java/org/jboss/as/ejb3/deployment/processors/EjbJarParsingDeploymentUnitProcessor.java: final XMLInputFactory inpu
jpa/src/main/java/org/jboss/as/jpa/processor/PersistenceUnitParseProcessor.java: final XMLInputFactory inputFactory = XMLInp
jpa/src/main/java/org/jboss/as/jpa/puparser/PersistenceUnitXmlParser.java: XMLInputFactory xmlif = XMLInputFactory.newInstance()
jpa/src/test/java/org/jboss/as/jpa/puparser/PersistenceUnitXmlParserTestCase.java: XMLStreamReader reader = XMLInputFactory.newInsta
mc/src/main/java/org/jboss/as/mc/KernelDeploymentParsingProcessor.java: private final XMLInputFactory inputFactory = XMLInputFactory.new
messaging/src/test/java/org/jboss/as/messaging/test/ConfigParsingUnitTestCase.java:// mapper.parseDocument(updates, XMLInputFactory
messaging/src/test/java/org/jboss/as/messaging/test/SubsystemParsingUnitTestCase.java: mapper.parseDocument(operations, XMLInputFact
modcluster/src/test/java/org/jboss/as/modcluster/test/ParseAndMarshalModelsTestCase.java: XMLStreamReader reader = XMLInputFactory.n
sar/src/main/java/org/jboss/as/service/ServiceDeploymentParsingProcessor.java: private final XMLInputFactory inputFactory = XMLInputFact
sar/src/test/_java/org/jboss/as/service/JBossServiceXmlDescriptorParserTestCase.java: inputFactory = XMLInputFactory.newInstance();
security/src/test/java/org/jboss/as/security/test/SubsystemParsingUnitTestCase.java: mapper.parseDocument(operations, XMLInputFactor
server/src/main/java/org/jboss/as/server/deployment/module/DeploymentStructureDescriptorParser.java: private static final XMLInputFactor
threads/src/test/java/org/jboss/as/threads/ThreadsSubsystemTestCase.java: XMLStreamReader xmlReader = XMLInputFactory.newInstance().
web/src/main/java/org/jboss/as/web/SharedTldsMetaDataBuilder.java: final XMLInputFactory inputFactory = XMLInputFactory.newInsta
web/src/main/java/org/jboss/as/web/deployment/JBossWebParsingDeploymentProcessor.java: final XMLInputFactory inputFactory =
web/src/main/java/org/jboss/as/web/deployment/TldParsingDeploymentProcessor.java: final XMLInputFactory inputFactory = XMLInputF
web/src/main/java/org/jboss/as/web/deployment/WebFragmentParsingDeploymentProcessor.java: final XMLInputFactory inpu
web/src/main/java/org/jboss/as/web/deployment/WebParsingDeploymentProcessor.java: return XMLInputFactory.newInstance();
web/src/main/java/org/jboss/as/web/deployment/jsf/JsfManagedBeanProcessor.java: final XMLInputFactory inputFactory = XMLInpu
{code}
Your change seems to catch just one of them. Could you please take this to the list? I'd like to understand how we can fix this properly.
Why is there a leak from an OSGi deployment to the TCCL?
The API that is currently used relies on an implicit CL. If it cannot be guranteed that the right CL is used, we may need to switch to an API that uses an explicit CL (i.e. XMLInputFactory.newFactory(String, ClassLoader))
It should not be necessary to wrap the call in order to provide a TCCL
was (Author: thomas.diesler):
There are many occurances of this
{code}
[tdiesler at tdvaio jboss-as]$ git grep XMLInputFactory.newInstance
clustering/src/test/java/org/jboss/as/clustering/infinispan/subsystem/InfinispanSubsystemParserTest.java: XMLStreamReader reader = X
clustering/src/test/java/org/jboss/as/clustering/jgroups/subsystem/JGroupsSubsystemParserTest.java: XMLStreamReader reader = XMLInpu
controller/src/main/java/org/jboss/as/controller/persistence/XmlConfigurationPersister.java: XMLStreamReader streamReader =
controller/src/test/java/org/jboss/as/controller/parsing/Jbas9020TestCase.java: final XMLStreamReader reader = XMLInputFactory.newIn
controller/src/test/java/org/jboss/as/controller/parsing/Jbas9020TestCase.java: final XMLStreamReader reader = XMLInputFactory.newIn
controller/src/test/java/org/jboss/as/controller/parsing/Jbas9020TestCase.java: final XMLStreamReader reader = XMLInputFactory.newIn
ee/src/main/java/org/jboss/as/ee/structure/EarMetaDataParsingProcessor.java: final XMLInputFactory inputFactory = XMLInputFactor
ee/src/main/java/org/jboss/as/ee/structure/JBossAppMetaDataParsingProcessor.java: final XMLInputFactory inputFactory = XMLInputF
ejb3/src/main/java/org/jboss/as/ejb3/deployment/processors/EjbJarParsingDeploymentUnitProcessor.java: final XMLInputFactory inpu
jpa/src/main/java/org/jboss/as/jpa/processor/PersistenceUnitParseProcessor.java: final XMLInputFactory inputFactory = XMLInp
jpa/src/main/java/org/jboss/as/jpa/puparser/PersistenceUnitXmlParser.java: XMLInputFactory xmlif = XMLInputFactory.newInstance()
jpa/src/test/java/org/jboss/as/jpa/puparser/PersistenceUnitXmlParserTestCase.java: XMLStreamReader reader = XMLInputFactory.newInsta
mc/src/main/java/org/jboss/as/mc/KernelDeploymentParsingProcessor.java: private final XMLInputFactory inputFactory = XMLInputFactory.new
messaging/src/test/java/org/jboss/as/messaging/test/ConfigParsingUnitTestCase.java:// mapper.parseDocument(updates, XMLInputFactory
messaging/src/test/java/org/jboss/as/messaging/test/SubsystemParsingUnitTestCase.java: mapper.parseDocument(operations, XMLInputFact
modcluster/src/test/java/org/jboss/as/modcluster/test/ParseAndMarshalModelsTestCase.java: XMLStreamReader reader = XMLInputFactory.n
sar/src/main/java/org/jboss/as/service/ServiceDeploymentParsingProcessor.java: private final XMLInputFactory inputFactory = XMLInputFact
sar/src/test/_java/org/jboss/as/service/JBossServiceXmlDescriptorParserTestCase.java: inputFactory = XMLInputFactory.newInstance();
security/src/test/java/org/jboss/as/security/test/SubsystemParsingUnitTestCase.java: mapper.parseDocument(operations, XMLInputFactor
server/src/main/java/org/jboss/as/server/deployment/module/DeploymentStructureDescriptorParser.java: private static final XMLInputFactor
threads/src/test/java/org/jboss/as/threads/ThreadsSubsystemTestCase.java: XMLStreamReader xmlReader = XMLInputFactory.newInstance().
web/src/main/java/org/jboss/as/web/SharedTldsMetaDataBuilder.java: final XMLInputFactory inputFactory = XMLInputFactory.newInsta
web/src/main/java/org/jboss/as/web/deployment/JBossWebParsingDeploymentProcessor.java: final XMLInputFactory inputFactory =
web/src/main/java/org/jboss/as/web/deployment/TldParsingDeploymentProcessor.java: final XMLInputFactory inputFactory = XMLInputF
web/src/main/java/org/jboss/as/web/deployment/WebFragmentParsingDeploymentProcessor.java: final XMLInputFactory inpu
web/src/main/java/org/jboss/as/web/deployment/WebParsingDeploymentProcessor.java: return XMLInputFactory.newInstance();
web/src/main/java/org/jboss/as/web/deployment/jsf/JsfManagedBeanProcessor.java: final XMLInputFactory inputFactory = XMLInpu
{code}
Your change seems to catch just one of them. Could you please take this to the list? I'd like to understand how we can fix this properly.
Why is there a leak from an OSGi deployment to the TCCL?
If the XMLInputFactory needs to have a certain TCCL, we may need to use an API that provides the CL explicitly.
http://download.oracle.com/javase/6/docs/api/javax/xml/stream/XMLInputFactory.html#newFactory(java.lang.String,%20java.lang.ClassLoader)
> Web parsing may fail due to XMLInputFactory could not be instantiated
> ---------------------------------------------------------------------
>
> Key: AS7-837
> URL: https://issues.jboss.org/browse/AS7-837
> Project: Application Server 7
> Issue Type: Bug
> Reporter: Thomas Diesler
> Assignee: David Bosschaert
> Fix For: 7.0.0.CR1
>
>
> when running all osgi integration tests like this
> $ mvn -DskipTests=false -Dtest=osgi/**/*TestCase test
> I see the ServletIntegrationTestCase fail due to
> {code}
> 15:57:51,063 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) Starting deployment of "web-osgi-client.war"
> 15:57:51,071 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC00001: Failed to start service jboss.deployment.unit."web-osgi-client.war".PARSE: org.jboss.msc.service.StartException in service jboss.deployment.unit."web-osgi-client.war".PARSE: Failed to process phase PARSE of deployment "web-osgi-client.war"
> at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:121)
> at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1675)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_21]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_21]
> at java.lang.Thread.run(Thread.java:619) [:1.6.0_21]
> Caused by: javax.xml.stream.FactoryFinder$ConfigurationError: Provider __redirected.__XMLInputFactory could not be instantiated: java.lang.IllegalStateException: Bundle uninstalled: interceptor-endpoint:0.0.0
> at javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:158) [:1.6.0_21]
> at javax.xml.stream.FactoryFinder.find(FactoryFinder.java:186) [:1.6.0_21]
> at javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:123) [:1.6.0_21]
> at org.jboss.as.web.deployment.WebParsingDeploymentProcessor.deploy(WebParsingDeploymentProcessor.java:62)
> at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115)
> ... 4 more
> {code}
> The FactoryFinder seems to access an invalid classloader
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list