You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Nickolay Martinov (JIRA)" <ji...@apache.org> on 2010/12/02 07:17:11 UTC

[jira] Updated: (SMXCOMP-824) REOPEN -Problem with CXF SE component after stop and restart

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

Nickolay Martinov updated SMXCOMP-824:
--------------------------------------

    Attachment: servicemix-cxf-se-2009.02.fix.patch

Attached patch that fixes problem for me. 

Problem itself is that init() calls deploy() is SU is not deployed, deploy() calls validate() and validate() performs actual resources initialization. Unfortunately validate() is never called after deployment is finished so resources are not reinitialized after they were released during stop(). Probably validate() isnt good place for resources initialization and start() should be used instead for these purposes. Patch adds check to start() if resources are initialized and calls validate() if they are not. This is dirty hack but it follows current design decisions (resources initialization in validate()).

> REOPEN -Problem with CXF SE component after stop and restart
> ------------------------------------------------------------
>
>                 Key: SMXCOMP-824
>                 URL: https://issues.apache.org/jira/browse/SMXCOMP-824
>             Project: ServiceMix Components
>          Issue Type: Bug
>          Components: servicemix-cxf-se
>    Affects Versions: 3.2.1
>            Reporter: Nickolay Martinov
>            Assignee: Freeman Fang
>             Fix For: 3.2.2, servicemix-cxf-se-2008.01
>
>         Attachments: servicemix-cxf-se-2009.02.debug.patch, servicemix-cxf-se-2009.02.fix.patch, servicemix-cxf-se-2009.02.reproduce.patch
>
>
> Hello,
> Using ServiceMix 3.2.2 I encounter a NullPointerException receiving requests on a CXF Se component after stopping and restarting this component.
> The problem can be seen using the wsdl-first sample.
> The same problem occurs after doing a shutdown and restart of the component.
> See traces below.
> Regards,
> Nelly
> Traces:
> ======
> >>>>>>> no problem at the beginning for the cxf-se: 
> 11:28:19,167 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 | SedaQueue                | .jbi.nmr.flow.seda.SedaQueue$1  132 | org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@ce4f39 dequeued exchange: InOut[
>   id: ID:16.17.2.253-119e199379f-4:0
>   status: Active
>   role: provider
>   interface: {http://servicemix.apache.org/samples/wsdl-first}Person
>   service: {http://servicemix.apache.org/samples/wsdl-first}PersonService
>   endpoint: PersonImplPort
>   operation: {http://servicemix.apache.org/samples/wsdl-first}GetPerson
>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="http://servicemix.apache.org/samples/wsdl-first" name="GetPersonRequest" type="msg:GetPersonRequest" version="1.0"><jbi:part><tns:GetPerson xmlns:tns="http://servicemix.apache.org/samples/wsdl-first/types">
>       <tns:personId xmlns:tns="http://servicemix.apache.org/samples/wsdl-first/types">world</tns:personId>
>     </tns:GetPerson></jbi:part></jbi:message>
> ]
> 11:28:19,177 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 | CxfSeComponent           | emix.common.AsyncBaseLifeCycle  468 | Received exchange: status: Active, role: provider
> 11:28:19,177 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 | CxfSeComponent           | emix.common.AsyncBaseLifeCycle  536 | Retrieved correlation id: ID:16.17.2.253-119e199379f-4:0
> 11:28:19,788 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 | DeliveryChannelImpl      | .messaging.DeliveryChannelImpl  425 | Send ID:16.17.2.253-119e199379f-4:0 in DeliveryChannel{servicemix-cxf-se}
> 11:28:19,788 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 | SedaFlow                 | emix.jbi.nmr.flow.AbstractFlow  118 | Called Flow send
> 11:28:19,798 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 | SedaQueue                | .jbi.nmr.flow.seda.SedaQueue$1  132 | org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@6bfafb dequeued exchange: InOut[
>   id: ID:16.17.2.253-119e199379f-4:0
>   status: Active
>   role: consumer
>   interface: {http://servicemix.apache.org/samples/wsdl-first}Person
>   service: {http://servicemix.apache.org/samples/wsdl-first}PersonService
>   endpoint: PersonImplPort
>   operation: {http://servicemix.apache.org/samples/wsdl-first}GetPerson
>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="http://servicemix.apache.org/samples/wsdl-first" name="GetPersonRequest" type="msg:GetPersonRequest" version="1.0"><jbi:part><tns:GetPerson xmlns:tns="http://servicemix.apache.org/samples/wsdl-first/types">
>       <tns:personId xmlns:tns="http://servicemix.apache.org/samples/wsdl-first/types">world</tns:personId>
>     </tns:GetPerson></jbi:part></jbi:message>
>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="http://servicemix.apache.org/samples/wsdl-first" type="msg:GetPersonResponse"><jbi:part><GetPersonResponse xmlns="http://servicemix.apache.org/samples/wsdl-first/types"><personId>world</personId><ssn>000-000-0000</ssn><name>Guillaume</name></GetPersonResponse></jbi:part></jbi:message>
> ]
> 11:28:19,818 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 | DeliveryChannelImpl      | .messaging.DeliveryChannelImpl  710 | Notifying exchange ID:16.17.2.253-119e199379f-4:0(16ff34d) in DeliveryChannel{servicemix-cxf-bc} from processInboundSynchronousExchange
> 11:28:19,818 | DEBUG | btpool0-1  | DeliveryChannelImpl      | .messaging.DeliveryChannelImpl  704 | Notified: ID:16.17.2.253-119e199379f-4:0(16ff34d) in DeliveryChannel{servicemix-cxf-bc} from sendSync
> 11:28:19,879 | DEBUG | btpool0-1  | DeliveryChannelImpl      | .messaging.DeliveryChannelImpl  425 | Send ID:16.17.2.253-119e199379f-4:0 in DeliveryChannel{servicemix-cxf-bc}
> 11:28:19,879 | DEBUG | btpool0-1  | SedaFlow                 | emix.jbi.nmr.flow.AbstractFlow  118 | Called Flow send
> 11:28:19,889 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-3 | SedaQueue                | .jbi.nmr.flow.seda.SedaQueue$1  132 | org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@815832 dequeued exchange: InOut[
>   id: ID:16.17.2.253-119e199379f-4:0
>   status: Done
>   role: provider
>   interface: {http://servicemix.apache.org/samples/wsdl-first}Person
>   service: {http://servicemix.apache.org/samples/wsdl-first}PersonService
>   endpoint: PersonImplPort
>   operation: {http://servicemix.apache.org/samples/wsdl-first}GetPerson
>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="http://servicemix.apache.org/samples/wsdl-first" name="GetPersonRequest" type="msg:GetPersonRequest" version="1.0"><jbi:part><tns:GetPerson xmlns:tns="http://servicemix.apache.org/samples/wsdl-first/types">
>       <tns:personId xmlns:tns="http://servicemix.apache.org/samples/wsdl-first/types">world</tns:personId>
>     </tns:GetPerson></jbi:part></jbi:message>
>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="http://servicemix.apache.org/samples/wsdl-first" type="msg:GetPersonResponse"><jbi:part><GetPersonResponse xmlns="http://servicemix.apache.org/samples/wsdl-first/types"><personId>world</personId><ssn>000-000-0000</ssn><name>Guillaume</name></GetPersonResponse></jbi:part></jbi:message>
> ]
> 11:28:19,889 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-3 | CxfSeComponent           | emix.common.AsyncBaseLifeCycle  468 | Received exchange: status: Done, role: provider
> 11:28:19,889 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-3 | CxfSeComponent           | emix.common.AsyncBaseLifeCycle  536 | Retrieved correlation id: ID:16.17.2.253-119e199379f-4:0
> 11:29:01,262 | DEBUG | RMI TCP Connection(4)-16.17.2.253 | AASAuthenticationService | impl.JAASAuthenticationService   50 | Authenticating 'smx' with 'smx'
> >>>>>> Stopping the wsdl-first-cxf-sa assembly:
> 11:29:23,276 | INFO  | RMI TCP Connection(5)-16.17.2.253 | ServiceAssemblyLifeCycle | ework.ServiceAssemblyLifeCycle  161 | Stopping service assembly: wsdl-first-cxf-sa
> 11:29:23,276 | INFO  | RMI TCP Connection(5)-16.17.2.253 | ServiceUnitLifeCycle     | framework.ServiceUnitLifeCycle  115 | Stopping service unit: wsdl-first-cxfse-su
> 11:29:23,286 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | CxfSeComponent           | .common.BaseServiceUnitManager  171 | Stopping service unit
> 11:29:23,286 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | JCAFlow                  | cemix.jbi.nmr.flow.jca.JCAFlow  398 | ServiceMix: broadcasting info for org.apache.servicemix.jbi.event.EndpointEvent[source=ServiceEndpoint[service={http://servicemix.apache.org/samples/wsdl-first}PersonService,endpoint=PersonImplPort]]
> 11:29:23,296 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | JMSFlow                  | i.nmr.flow.jms.AbstractJMSFlow  378 | ServiceMix: broadcasting info for org.apache.servicemix.jbi.event.EndpointEvent[source=ServiceEndpoint[service={http://servicemix.apache.org/samples/wsdl-first}PersonService,endpoint=PersonImplPort]]
> 11:29:23,296 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | CxfSeComponent           | .common.BaseServiceUnitManager  186 | Service unit stopped
> 11:29:23,476 | INFO  | RMI TCP Connection(5)-16.17.2.253 | ServiceUnitLifeCycle     | framework.ServiceUnitLifeCycle  115 | Stopping service unit: wsdl-first-cxfbc-su
> 11:29:23,476 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | CxfBcComponent           | .common.BaseServiceUnitManager  171 | Stopping service unit
> 11:29:23,476 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | CxfBcComponent           | .common.BaseServiceUnitManager  186 | Service unit stopped
> >>>>>> Starting the wsdl-first-cxf-sa assembly
> 11:29:34,053 | INFO  | RMI TCP Connection(5)-16.17.2.253 | ServiceAssemblyLifeCycle | ework.ServiceAssemblyLifeCycle  111 | Starting service assembly: wsdl-first-cxf-sa
> 11:29:34,063 | INFO  | RMI TCP Connection(5)-16.17.2.253 | ServiceUnitLifeCycle     | framework.ServiceUnitLifeCycle   97 | Starting service unit: wsdl-first-cxfse-su
> 11:29:34,063 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | CxfSeComponent           | .common.BaseServiceUnitManager  137 | Starting service unit
> 11:29:34,083 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | ComponentContextImpl     | framework.ComponentContextImpl  124 | Component: servicemix-cxf-se activated endpoint: {http://servicemix.apache.org/samples/wsdl-first}PersonService : PersonImplPort
> 11:29:34,083 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | CxfSeComponent           | icemix.common.DefaultComponent   79 | Querying service description for ServiceEndpoint[service={http://servicemix.apache.org/samples/wsdl-first}PersonService,endpoint=PersonImplPort]
> 11:29:34,093 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | WSDL1Processor           | amework.support.WSDL1Processor  110 | Endpoint ServiceEndpoint[service={http://servicemix.apache.org/samples/wsdl-first}PersonService,endpoint=PersonImplPort] implements interface {http://servicemix.apache.org/samples/wsdl-first}Person
> 11:29:34,093 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | CxfSeComponent           | icemix.common.DefaultComponent   79 | Querying service description for ServiceEndpoint[service={http://servicemix.apache.org/samples/wsdl-first}PersonService,endpoint=PersonImplPort]
> 11:29:34,093 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | WSDL2Processor           | amework.support.WSDL2Processor   70 | Endpoint ServiceEndpoint[service={http://servicemix.apache.org/samples/wsdl-first}PersonService,endpoint=PersonImplPort] has a non WSDL2 service description
> 11:29:34,103 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | JCAFlow                  | cemix.jbi.nmr.flow.jca.JCAFlow  381 | ServiceMix: broadcasting info for org.apache.servicemix.jbi.event.EndpointEvent[source=ServiceEndpoint[service={http://servicemix.apache.org/samples/wsdl-first}PersonService,endpoint=PersonImplPort]]
> 11:29:34,113 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | JMSFlow                  | i.nmr.flow.jms.AbstractJMSFlow  378 | ServiceMix: broadcasting info for org.apache.servicemix.jbi.event.EndpointEvent[source=ServiceEndpoint[service={http://servicemix.apache.org/samples/wsdl-first}PersonService,endpoint=PersonImplPort]]
> 11:29:34,123 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | CxfSeComponent           | servicemix.cxfse.CxfSeEndpoint  279 | Unable to inject ComponentContext: org.apache.servicemix.samples.wsdl_first.PersonImpl.setContext(javax.jbi.component.ComponentContext)
> 11:29:34,123 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | CxfSeComponent           | .common.BaseServiceUnitManager  153 | Service unit started
> 11:29:34,133 | INFO  | RMI TCP Connection(5)-16.17.2.253 | ServiceUnitLifeCycle     | framework.ServiceUnitLifeCycle   97 | Starting service unit: wsdl-first-cxfbc-su
> 11:29:34,133 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | CxfBcComponent           | .common.BaseServiceUnitManager  137 | Starting service unit
> 11:29:34,133 | DEBUG | RMI TCP Connection(5)-16.17.2.253 | CxfBcComponent           | .common.BaseServiceUnitManager  153 | Service unit started
> >>>>>> send request
> 11:29:40,182 | DEBUG | btpool0-2  | CxfBcComponent           | emix.common.AsyncBaseLifeCycle  587 | Created correlation id: ID:16.17.2.253-119e199379f-4:1
> 11:29:40,192 | DEBUG | btpool0-2  | DeliveryChannelImpl      | .messaging.DeliveryChannelImpl  458 | SendSync ID:16.17.2.253-119e199379f-4:1 in DeliveryChannel{servicemix-cxf-bc}
> 11:29:40,192 | DEBUG | btpool0-2  | SedaFlow                 | emix.jbi.nmr.flow.AbstractFlow  118 | Called Flow send
> 11:29:40,202 | DEBUG | btpool0-2  | DeliveryChannelImpl      | .messaging.DeliveryChannelImpl  693 | Waiting for exchange ID:16.17.2.253-119e199379f-4:1 (2f40f4) to be answered in DeliveryChannel{servicemix-cxf-bc} from sendSync
> 11:29:40,212 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-4 | SedaQueue                | .jbi.nmr.flow.seda.SedaQueue$1  132 | org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@517b46 dequeued exchange: InOut[
>   id: ID:16.17.2.253-119e199379f-4:1
>   status: Active
>   role: provider
>   interface: {http://servicemix.apache.org/samples/wsdl-first}Person
>   service: {http://servicemix.apache.org/samples/wsdl-first}PersonService
>   endpoint: PersonImplPort
>   operation: {http://servicemix.apache.org/samples/wsdl-first}GetPerson
>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="http://servicemix.apache.org/samples/wsdl-first" name="GetPersonRequest" type="msg:GetPersonRequest" version="1.0"><jbi:part><tns:GetPerson xmlns:tns="http://servicemix.apache.org/samples/wsdl-first/types">
>       <tns:personId xmlns:tns="http://servicemix.apache.org/samples/wsdl-first/types">world</tns:personId>
>     </tns:GetPerson></jbi:part></jbi:message>
> ]
> 11:29:40,232 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-4 | CxfSeComponent           | emix.common.AsyncBaseLifeCycle  468 | Received exchange: status: Active, role: provider
> 11:29:40,232 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-4 | CxfSeComponent           | emix.common.AsyncBaseLifeCycle  536 | Retrieved correlation id: ID:16.17.2.253-119e199379f-4:1
> 11:29:40,282 | ERROR | pool-flow.seda.servicemix-cxf-se-thread-4 | CxfSeComponent           | ervicemix.common.BaseLifeCycle   48 | Error processing exchange InOut[
>   id: ID:16.17.2.253-119e199379f-4:1
>   status: Active
>   role: provider
>   interface: {http://servicemix.apache.org/samples/wsdl-first}Person
>   service: {http://servicemix.apache.org/samples/wsdl-first}PersonService
>   endpoint: PersonImplPort
>   operation: {http://servicemix.apache.org/samples/wsdl-first}GetPerson
>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="http://servicemix.apache.org/samples/wsdl-first" name="GetPersonRequest" type="msg:GetPersonRequest" version="1.0"><jbi:part><tns:GetPerson xmlns:tns="http://servicemix.apache.org/samples/wsdl-first/types">
>       <tns:personId xmlns:tns="http://servicemix.apache.org/samples/wsdl-first/types">world</tns:personId>
>     </tns:GetPerson></jbi:part></jbi:message>
> ]
> java.lang.NullPointerException
> 	at org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:200)
> 	at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
> 	at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
> 	at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
> 	at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
> 	at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> 	at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
> 	at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> 	at java.lang.Thread.run(Thread.java:595)
> 11:29:40,292 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-4 | DeliveryChannelImpl      | .messaging.DeliveryChannelImpl  425 | Send ID:16.17.2.253-119e199379f-4:1 in DeliveryChannel{servicemix-cxf-se}
> 11:29:40,292 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-4 | SedaFlow                 | emix.jbi.nmr.flow.AbstractFlow  118 | Called Flow send
> 11:29:40,302 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-4 | SedaQueue                | .jbi.nmr.flow.seda.SedaQueue$1  132 | org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1110caf dequeued exchange: InOut[
>   id: ID:16.17.2.253-119e199379f-4:1
>   status: Error
>   role: consumer
>   interface: {http://servicemix.apache.org/samples/wsdl-first}Person
>   service: {http://servicemix.apache.org/samples/wsdl-first}PersonService
>   endpoint: PersonImplPort
>   operation: {http://servicemix.apache.org/samples/wsdl-first}GetPerson
>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="http://servicemix.apache.org/samples/wsdl-first" name="GetPersonRequest" type="msg:GetPersonRequest" version="1.0"><jbi:part><tns:GetPerson xmlns:tns="http://servicemix.apache.org/samples/wsdl-first/types">
>       <tns:personId xmlns:tns="http://servicemix.apache.org/samples/wsdl-first/types">world</tns:personId>
>     </tns:GetPerson></jbi:part></jbi:message>
>   error: java.lang.NullPointerException
> ]
> 11:29:40,312 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-4 | DeliveryChannelImpl      | .messaging.DeliveryChannelImpl  710 | Notifying exchange ID:16.17.2.253-119e199379f-4:1(2f40f4) in DeliveryChannel{servicemix-cxf-bc} from processInboundSynchronousExchange
> 11:29:40,312 | DEBUG | btpool0-2  | DeliveryChannelImpl      | .messaging.DeliveryChannelImpl  704 | Notified: ID:16.17.2.253-119e199379f-4:1(2f40f4) in DeliveryChannel{servicemix-cxf-bc} from sendSync

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