[
https://issues.jboss.org/browse/AS7-837?page=com.atlassian.jira.plugin.sy...
]
Thomas Diesler edited comment on AS7-837 at 5/25/11 8:21 AM:
-------------------------------------------------------------
There are many occurances of this
{code}
[tdiesler@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@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/XMLInputFac...
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