NPE on JAXWS service initialization
-----------------------------------

                 Key: CXF-1996
                 URL: https://issues.apache.org/jira/browse/CXF-1996
             Project: CXF
          Issue Type: Bug
          Components: JAX-WS Runtime
    Affects Versions: 2.1.3
         Environment: Platform independent bug
            Reporter: Richard Opalka
             Fix For: 2.1.4


We're getting the below NPE with CXF 2.1.3.
It is related to CXF internal initialization.
The problematic code is in ReflectionServiceFactoryBean in method

protected boolean initializeClassInfo(OperationInfo o, Method method, 
List<String> paramOrder) {
   if (isWrapped(method)) {
      if (o.getUnwrappedOperation() == null) {
         //the "normal" algorithm didn't allow for unwrapping,
         //but the annotations say unwrap this.   We'll need to
         //make it.
         WSDLServiceBuilder.checkForWrapped(o, true); // Inside of this code 
RULE no.2 fails and thus unwrapper operation isn't set at all
      }
      ...
      o = o.getUnwrappedOperation(); // HERE the o variable is set to NULL
   } else if (o.isUnwrappedCapable()) {
      ...
   }
   o.setProperty(METHOD_PARAM_ANNOTATIONS, method.getParameterAnnotations()); 
// HERE we're getting NPE because o was set to null
   ...
}

We're attaching also web service archive to reproduce the problem.
This is the exception we're facing:

10:51:19,151 ERROR [[/jaxws-jbws2150]] StandardWrapper.Throwable
org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'ValidSecureService': Invocation of init method failed; nested 
exception is javax.xml.ws.WebServiceException: java.lang.NullPointerException
Caused by: 
javax.xml.ws.WebServiceException: java.lang.NullPointerException
        at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:267)
        at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:201)
        at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:394)
        at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1242)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1208)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
        at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291)
        at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
        at 
org.jboss.wsf.stack.cxf.CXFServletExt.loadAdditionalConfigExt(CXFServletExt.java:124)
        at org.jboss.wsf.stack.cxf.CXFServletExt.loadBus(CXFServletExt.java:101)
        at 
org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:91)
        at org.jboss.wsf.stack.cxf.CXFServletExt.init(CXFServletExt.java:73)
        at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
        at 
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:806)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
        at 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeClassInfo(ReflectionServiceFactoryBean.java:604)
        at 
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeWSDLOperation(JaxWsServiceFactoryBean.java:238)
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeWSDLOperations(ReflectionServiceFactoryBean.java:524)
        at 
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeWSDLOperations(JaxWsServiceFactoryBean.java:247)
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:316)
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:408)
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:189)
        at 
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:164)
        at 
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:100)
        at 
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:117)
        at 
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:168)
        at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:336)
        at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:251)
        ... 34 more
10:51:19,152 ERROR [[ValidService]] Allocate exception for servlet ValidService
java.lang.NullPointerException
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeClassInfo(ReflectionServiceFactoryBean.java:604)
        at 
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeWSDLOperation(JaxWsServiceFactoryBean.java:238)
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeWSDLOperations(ReflectionServiceFactoryBean.java:524)
        at 
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeWSDLOperations(JaxWsServiceFactoryBean.java:247)
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:316)
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:408)
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:189)
        at 
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:164)
        at 
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:100)
        at 
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:117)
        at 
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:168)
        at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:336)
        at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:251)
        at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:201)
        at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:394)
        at sun.reflect.GeneratedMethodAccessor191.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1242)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1208)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
        at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291)
        at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
        at 
org.jboss.wsf.stack.cxf.CXFServletExt.loadAdditionalConfigExt(CXFServletExt.java:124)
        at org.jboss.wsf.stack.cxf.CXFServletExt.loadBus(CXFServletExt.java:101)
        at 
org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:91)
        at org.jboss.wsf.stack.cxf.CXFServletExt.init(CXFServletExt.java:73)
        at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
        at 
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:806)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
        at 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
        at java.lang.Thread.run(Thread.java:595)


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

Reply via email to