[jboss-jira] [JBoss JIRA] (WFLY-11178) WSTrustTestCase failing on IBM

Jan Blizňák (Jira) issues at jboss.org
Mon Oct 22 10:55:00 EDT 2018


    [ https://issues.jboss.org/browse/WFLY-11178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13651240#comment-13651240 ] 

Jan Blizňák commented on WFLY-11178:
------------------------------------

[~dmlloyd], yeah, I get it, you described desired situation.
I tried to prepare a reproducer which should reveal the issue without webservices and without picketlink.
It is a copy of WF helloworld quickstart with additional call to "SchemaFactory.newInstance()" and some diagnostic output.

To reproduce:
# clone https://github.com/jbliznak/reproducer-wfly-11178
# execute server with particular JDK and  {{test.use.property}} set to true when {{javax.xml.validation.SchemaFactory:http://www.w3.org/2001/XMLSchema}} property should be set to {{org.apache.xerces.jaxp.validation.XMLSchemaFactory}}, eg. 
{{JAVA_OPTS="-Djaxp.debug=true -Dtest.use.property=true" bin/standalone.sh}}
# deploy the app to running server with {{mvn clean package wildfly:deploy}}
# invoke servlet, eg. 
{{curl http://localhost:8080/helloworld/HelloWorld}}

The result with WF 14.0.1.Final class can't be initialized in case of IBM&&property set:

||resolved class ||property unset ||property set ||
||OpenJDK|  __redirected.__SchemaFactory | __redirected.__SchemaFactory |
||IBM JDK| __redirected.__SchemaFactory  | java.lang.IllegalArgumentException: Provider org.apache.xerces.jaxp.validation.XMLSchemaFactory not found |

The interesting thing in JAXP debug output for OpenJDK&&property set is: 
{code:java}
15:38:53,429 ERROR [stderr] (default task-1) JAXP: using thread context class loader (ModuleClassLoader for Module "deployment.helloworld.war" from Service Module Loader) for search
15:38:53,429 ERROR [stderr] (default task-1) JAXP: Looking up system property 'javax.xml.validation.SchemaFactory:http://www.w3.org/2001/XMLSchema'
15:38:53,429 ERROR [stderr] (default task-1) JAXP: The value is 'org.apache.xerces.jaxp.validation.XMLSchemaFactory'
15:38:53,430 ERROR [stderr] (default task-1) JAXP: createInstance(org.apache.xerces.jaxp.validation.XMLSchemaFactory)
15:38:53,430 ERROR [stderr] (default task-1) java.lang.ClassNotFoundException: org.apache.xerces.jaxp.validation.XMLSchemaFactory from [Module "deployment.helloworld.war" from Service Module Loader]
15:38:53,430 ERROR [stderr] (default task-1) 	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:255)
15:38:53,430 ERROR [stderr] (default task-1) 	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
15:38:53,430 ERROR [stderr] (default task-1) 	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
15:38:53,430 ERROR [stderr] (default task-1) 	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
15:38:53,431 ERROR [stderr] (default task-1) 	at java.lang.Class.forName0(Native Method)
15:38:53,431 ERROR [stderr] (default task-1) 	at java.lang.Class.forName(Class.java:348)
15:38:53,431 ERROR [stderr] (default task-1) 	at javax.xml.validation.SchemaFactoryFinder.createClass(SchemaFactoryFinder.java:256)
15:38:53,431 ERROR [stderr] (default task-1) 	at javax.xml.validation.SchemaFactoryFinder.createInstance(SchemaFactoryFinder.java:285)
15:38:53,431 ERROR [stderr] (default task-1) 	at javax.xml.validation.SchemaFactoryFinder._newFactory(SchemaFactoryFinder.java:173)
15:38:53,431 ERROR [stderr] (default task-1) 	at javax.xml.validation.SchemaFactoryFinder.newFactory(SchemaFactoryFinder.java:146)
15:38:53,431 ERROR [stderr] (default task-1) 	at javax.xml.validation.SchemaFactory.newInstance(SchemaFactory.java:213)
15:38:53,431 ERROR [stderr] (default task-1) 	at org.jboss.as.quickstarts.helloworld.HelloService.createHelloMessage(HelloService.java:51)
15:38:53,431 ERROR [stderr] (default task-1) 	at org.jboss.as.quickstarts.helloworld.HelloWorldServlet.doGet(HelloWorldServlet.java:58)
15:38:53,431 ERROR [stderr] (default task-1) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
15:38:53,432 ERROR [stderr] (default task-1) 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:791)
15:38:53,432 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
15:38:53,432 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
15:38:53,432 ERROR [stderr] (default task-1) 	at io.opentracing.contrib.jaxrs2.server.SpanFinishingFilter.doFilter(SpanFinishingFilter.java:55)
15:38:53,432 ERROR [stderr] (default task-1) 	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
15:38:53,432 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
15:38:53,432 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
15:38:53,432 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
15:38:53,432 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
15:38:53,432 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
15:38:53,432 ERROR [stderr] (default task-1) 	at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
15:38:53,433 ERROR [stderr] (default task-1) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
15:38:53,433 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)
15:38:53,433 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
15:38:53,433 ERROR [stderr] (default task-1) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
15:38:53,433 ERROR [stderr] (default task-1) 	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
15:38:53,433 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
15:38:53,433 ERROR [stderr] (default task-1) 	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
15:38:53,433 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
15:38:53,433 ERROR [stderr] (default task-1) 	at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
15:38:53,433 ERROR [stderr] (default task-1) 	at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
15:38:53,433 ERROR [stderr] (default task-1) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
15:38:53,433 ERROR [stderr] (default task-1) 	at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
15:38:53,434 ERROR [stderr] (default task-1) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
15:38:53,434 ERROR [stderr] (default task-1) 	at org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
15:38:53,434 ERROR [stderr] (default task-1) 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
15:38:53,434 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
15:38:53,434 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
15:38:53,434 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
15:38:53,434 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
15:38:53,434 ERROR [stderr] (default task-1) 	at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
15:38:53,434 ERROR [stderr] (default task-1) 	at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
15:38:53,434 ERROR [stderr] (default task-1) 	at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
15:38:53,434 ERROR [stderr] (default task-1) 	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
15:38:53,434 ERROR [stderr] (default task-1) 	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
15:38:53,434 ERROR [stderr] (default task-1) 	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
15:38:53,434 ERROR [stderr] (default task-1) 	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
15:38:53,435 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
15:38:53,435 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
15:38:53,435 ERROR [stderr] (default task-1) 	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
15:38:53,435 ERROR [stderr] (default task-1) 	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:360)
15:38:53,435 ERROR [stderr] (default task-1) 	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
15:38:53,435 ERROR [stderr] (default task-1) 	at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
15:38:53,435 ERROR [stderr] (default task-1) 	at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
15:38:53,435 ERROR [stderr] (default task-1) 	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
15:38:53,435 ERROR [stderr] (default task-1) 	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1349)
15:38:53,435 ERROR [stderr] (default task-1) 	at java.lang.Thread.run(Thread.java:748)
15:38:53,435 ERROR [stderr] (default task-1) JAXP: failed to getClass(org.apache.xerces.jaxp.validation.XMLSchemaFactory)
15:38:53,435 ERROR [stderr] (default task-1) JAXP: found null in $java.home/jaxp.properties
15:38:53,436 ERROR [stderr] (default task-1) JAXP: factory '__redirected.__SchemaFactory' was found for http://www.w3.org/2001/XMLSchema
{code}

whereas for IBM&&property set
{code:java}

15:50:31,917 ERROR [stderr] (default task-1) JAXP: find factoryId=javax.xml.validation.SchemaFactory:http://www.w3.org/2001/XMLSchema
15:50:31,918 ERROR [stderr] (default task-1) JAXP: found system property, value=org.apache.xerces.jaxp.validation.XMLSchemaFactory
15:50:31,923 ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /helloworld/HelloWorld: java.lang.IllegalArgumentException: Provider org.apache.xerces.jaxp.validation.XMLSchemaFactory not found
	at javax.xml.validation.SchemaFactory.newInstance(Unknown Source)
	at org.jboss.as.quickstarts.helloworld.HelloService.createHelloMessage(HelloService.java:51)
	at org.jboss.as.quickstarts.helloworld.HelloWorldServlet.doGet(HelloWorldServlet.java:58)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:791)
	at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
	at io.opentracing.contrib.jaxrs2.server.SpanFinishingFilter.doFilter(SpanFinishingFilter.java:55)
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
	at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
	at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)
	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
	at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
	at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
	at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
	at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
	at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
	at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
	at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction$$Lambda$757.00000000DFD9ADA0.call(Unknown Source)
	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction$$Lambda$758.00000000E027C730.call(Unknown Source)
	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction$$Lambda$758.00000000E027C730.call(Unknown Source)
	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction$$Lambda$758.00000000E027C730.call(Unknown Source)
	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1502)
	at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction$$Lambda$758.00000000E027C730.call(Unknown Source)
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:360)
	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
	at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
	at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1349)
	at java.lang.Thread.run(Thread.java:812)
{code}

RE:
??Application code is certainly allowed to do so, but in that case it's up to them to ensure the dependency is added to the deployment.??
The testing app doesn't have org.apache.xerces module dependency explicitly added, yet OpenJDK can handle situation with property set (looks like OpenJDK has some fallback mechanism which IBM doesn't). Or there might be some classloading issue with IBM.

At this point I think JBoss Modules jira could be created for future work on this, WDYT?

> WSTrustTestCase failing on IBM
> ------------------------------
>
>                 Key: WFLY-11178
>                 URL: https://issues.jboss.org/browse/WFLY-11178
>             Project: WildFly
>          Issue Type: Bug
>          Components: Web Services
>    Affects Versions: 14.0.0.Final
>            Reporter: Jan Blizňák
>            Assignee: Alessio Soldano
>            Priority: Major
>         Attachments: log.txt
>
>
> As discovered during investigation in WFLY-10336, we are now getting test failures in WSTrustTestCase when IBM JDK is used. The relevant part of the exception is:
> {code:java}
> Caused by: java.lang.IllegalArgumentException: Provider org.apache.xerces.jaxp.validation.XMLSchemaFactory not found
> 	at javax.xml.validation.SchemaFactory.newInstance(Unknown Source)
> 	at org.opensaml.core.xml.config.XMLConfigurator.<init>(XMLConfigurator.java:94)
> 	at org.apache.wss4j.common.saml.OpenSAMLBootstrap.bootstrap(OpenSAMLBootstrap.java:85)
> 	at org.apache.wss4j.common.saml.OpenSAMLUtil.initSamlEngine(OpenSAMLUtil.java:91)
> 	at org.apache.wss4j.common.saml.OpenSAMLUtil.initSamlEngine(OpenSAMLUtil.java:75)
> 	at org.apache.wss4j.common.saml.SamlAssertionWrapper.<init>(SamlAssertionWrapper.java:184)
> 	at org.apache.cxf.sts.token.provider.SAMLTokenProvider.createSamlToken(SAMLTokenProvider.java:308)
> 	at org.apache.cxf.sts.token.provider.SAMLTokenProvider.createToken(SAMLTokenProvider.java:120)
> 	... 102 more
> {code}
> It turned out the issue is in wildfly for some time, the breaking change was identified as https://github.com/wildfly/wildfly-core/pull/3201/



--
This message was sent by Atlassian Jira
(v7.12.1#712002)



More information about the jboss-jira mailing list