You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Daniel Kulp (JIRA)" <ji...@apache.org> on 2009/07/16 20:40:15 UTC

[jira] Resolved: (CXF-1852) Provider classes must implement Provider even when superclass does

     [ https://issues.apache.org/jira/browse/CXF-1852?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-1852.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.2.3
                   2.1.6
         Assignee: Daniel Kulp


Resolved in svn revision 789420

> Provider classes must implement Provider<T> even when superclass does
> ---------------------------------------------------------------------
>
>                 Key: CXF-1852
>                 URL: https://issues.apache.org/jira/browse/CXF-1852
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.1.2
>         Environment: Tomcat 6.0.16
> Sun JVM 1.6.0_10-rc2-b32
> Centos 5 Linux (probably irrelevent)
>            Reporter: Andrew Clegg
>            Assignee: Daniel Kulp
>            Priority: Minor
>             Fix For: 2.1.6, 2.2.3
>
>         Attachments: cxf-provider-bug.tar.gz
>
>
> I've discovered something a bit weird while messing around with provider services. It seems that the implementation class must directly implement the interface Provider<T>, even if its parent class already does so. If this isn't done, I get an ArrayIndexOutOfBoundsException (on viewing the WSDL, for example) rather than an informative failure.
> Stack trace:
> java.lang.ArrayIndexOutOfBoundsException: 0
>        org.apache.cxf.jaxws.JAXWSProviderMethodDispatcher.<init>(JAXWSProviderMethodDispatcher.java:39)
>        org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initConfiguration(JaxWsServiceFactoryBean.java:400)
>        org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.setJaxWsImplementorInfo(JaxWsServiceFactoryBean.java:391)
>        org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.setServiceClass(JaxWsServiceFactoryBean.java:174)
>        org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.initializeServiceFactory(AbstractWSDLBasedEndpointFactory.java:227)
>        org.apache.cxf.frontend.ServerFactoryBean.initializeServiceFactory(ServerFactoryBean.java:156)
>        org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:99)
>        org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:116)
>        org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:168)
>        org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:336)
>        org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:251)
>        org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:201)
>        org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:394)
>        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        java.lang.reflect.Method.invoke(Method.java:597)
>        org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1242)
>        org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1208)
>        org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)
>        org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
>        org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
>        org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
>        org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
>        org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
>        org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291)
>        org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
>        org.apache.cxf.transport.servlet.CXFServlet.loadAdditionalConfig(CXFServlet.java:161)
>        org.apache.cxf.transport.servlet.CXFServlet.updateContext(CXFServlet.java:129)
>        org.apache.cxf.transport.servlet.CXFServlet.loadSpringBus(CXFServlet.java:101)
>        org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:70)
>        org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:90)
>        org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>        org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>        org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>        org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>        org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>        java.lang.Thread.run(Thread.java:619)
> See the attached project archive for a demonstration. It can be deployed to Tomcat with mvn tomcat:deploy . In src/main/java/cxfbug/ProviderSubClass.java there's a comment indicating what to change in order to tickle the bug.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.