[
https://issues.apache.org/jira/browse/SMXCOMP-824?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12965999#action_12965999
]
Nickolay Martinov edited comment on SMXCOMP-824 at 12/2/10 1:18 AM:
--------------------------------------------------------------------
Attached patch that fixes problem for me.
Problem itself is that init() calls deploy() if 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() isn't good place for resources initialization and start()
should be used instead for this purpose. 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()).
was (Author: nickolay_martinov):
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.sedaqueu...@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.sedaqueu...@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.sedaqueu...@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.sedaqueu...@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.sedaqueu...@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.