The commit below causes multiple regressions in JBoss integration with Apache CXF. It's not fully clear to me the sequence of changes that led to this; currently the exception I get is the following:

11:23:52,385 ERROR [stderr] (default task-49) java.lang.IllegalArgumentException: interface javax.xml.ws.BindingProvider is not visible from class loader 11:23:52,385 ERROR [stderr] (default task-49) at java.lang.reflect.Proxy.getProxyClass0(Proxy.java:484) 11:23:52,385 ERROR [stderr] (default task-49) at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:713) 11:23:52,385 ERROR [stderr] (default task-49) at org.apache.cxf.common.util.ProxyHelper.getProxyInternal(ProxyHelper.java:46) 11:23:52,386 ERROR [stderr] (default task-49) at org.apache.cxf.common.util.ProxyHelper.getProxy(ProxyHelper.java:86) 11:23:52,386 ERROR [stderr] (default task-49) at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:175) 11:23:52,386 ERROR [stderr] (default task-49) at org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:142) 11:23:52,386 ERROR [stderr] (default task-49) at org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:476) 11:23:52,386 ERROR [stderr] (default task-49) at org.jboss.wsf.stack.cxf.client.ProviderImpl$JBossWSServiceImpl.createPort(ProviderImpl.java:505) 11:23:52,386 ERROR [stderr] (default task-49) at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:343) 11:23:52,386 ERROR [stderr] (default task-49) at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:334) 11:23:52,386 ERROR [stderr] (default task-49) at javax.xml.ws.Service.getPort(Service.java:99) 11:23:52,387 ERROR [stderr] (default task-49) at org.jboss.test.ws.jaxws.samples.schemavalidation.Helper.testDefaultClientValidation(Helper.java:59) 11:23:52,387 ERROR [stderr] (default task-49) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 11:23:52,387 ERROR [stderr] (default task-49) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 11:23:52,387 ERROR [stderr] (default task-49) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 11:23:52,387 ERROR [stderr] (default task-49) at java.lang.reflect.Method.invoke(Method.java:601) 11:23:52,387 ERROR [stderr] (default task-49) at org.jboss.wsf.test.TestServlet.invokeMethod(TestServlet.java:124) 11:23:52,387 ERROR [stderr] (default task-49) at org.jboss.wsf.test.TestServlet.doGet(TestServlet.java:77) 11:23:52,387 ERROR [stderr] (default task-49) at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) 11:23:52,388 ERROR [stderr] (default task-49) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 11:23:52,388 ERROR [stderr] (default task-49) at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:87) 11:23:52,388 ERROR [stderr] (default task-49) at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:59) 11:23:52,388 ERROR [stderr] (default task-49) at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 11:23:52,388 ERROR [stderr] (default task-49) at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:81) 11:23:52,388 ERROR [stderr] (default task-49) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) 11:23:52,388 ERROR [stderr] (default task-49) at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113) 11:23:52,389 ERROR [stderr] (default task-49) at io.undertow.security.handlers.AuthenticationCallHandler.handleRequest(AuthenticationCallHandler.java:52) 11:23:52,389 ERROR [stderr] (default task-49) at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) 11:23:52,389 ERROR [stderr] (default task-49) at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:65) 11:23:52,389 ERROR [stderr] (default task-49) at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:70) 11:23:52,389 ERROR [stderr] (default task-49) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) 11:23:52,389 ERROR [stderr] (default task-49) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) 11:23:52,389 ERROR [stderr] (default task-49) at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:209) 11:23:52,389 ERROR [stderr] (default task-49) at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:196) 11:23:52,389 ERROR [stderr] (default task-49) at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:69) 11:23:52,390 ERROR [stderr] (default task-49) at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:130) 11:23:52,390 ERROR [stderr] (default task-49) at io.undertow.server.HttpHandlers.executeRootHandler(HttpHandlers.java:36) 11:23:52,390 ERROR [stderr] (default task-49) at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:614) 11:23:52,390 ERROR [stderr] (default task-49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 11:23:52,390 ERROR [stderr] (default task-49) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 11:23:52,390 ERROR [stderr] (default task-49) at java.lang.Thread.run(Thread.java:722)

My gut feeling is that the change is somehow causing the boot classloader to be used for loading BindingProvider class within the Proxy, as a consequence of having added the boot classloader to the ProxyClassLoader because of Closeable interface (which is loaded by the boot classloader). In our scenario, though, the BindingProvider interface passed in when asking for the proxy is not loaded by the boot classloader (similarly to a OSGI environment, there's a classloader for a module with the proper version of the jaxws api to be used).

I'm excluding the commit here in the TCK testing we're running for validating Dan's fixes on 2.7.x branch after the 2.7.7 vote cancellation of yesterday.

Cheers
Alessio


-------- Original Message --------
Subject: svn commit: r1524051 - in /cxf/branches/2.7.x-fixes: ./ rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.java
Date:   Tue, 17 Sep 2013 14:09:13 -0000
From:   [email protected]
Reply-To:       [email protected]
To:     [email protected]



Author: cschneider
Date: Tue Sep 17 14:09:13 2013
New Revision: 1524051

URL: http://svn.apache.org/r1524051
Log:
CXF-5284 Switch order of interfaces in proxy call

Modified:
    cxf/branches/2.7.x-fixes/   (props changed)
    
cxf/branches/2.7.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.java

Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
  Merged /cxf/trunk:r1524050

Modified: 
cxf/branches/2.7.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.java
URL: 
http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.java?rev=1524051&r1=1524050&r2=1524051&view=diff
==============================================================================
--- 
cxf/branches/2.7.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.java
 (original)
+++ 
cxf/branches/2.7.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/JaxWsProxyFactoryBean.java
 Tue Sep 17 14:09:13 2013
@@ -119,7 +119,7 @@ public class JaxWsProxyFactoryBean exten
     @Override
     protected Class<?>[] getImplementingClasses() {
         Class<?> cls = getClientFactoryBean().getServiceClass();
-        return new Class[] {BindingProvider.class, Closeable.class, cls};
+        return new Class[] {cls, BindingProvider.class, Closeable.class, 
Client.class};
     }
/**




Reply via email to