Hello,

I see that the problem  SM-1171  BeanEndpoint can receive messages before it
has fully started, causing exceptions   has been fixed in ServiceMix 3.2.2.

I have the same problem in my component endpoint. This problem seems not to
be fixed with 3.2.2 version.
See traces just after. 
Do I need to modify my endpoint code to fix the problem ?

Thanks in advance,
Regards,
Nelly

Traces:
=======

03:41:45,618 | DEBUG | RMI TCP Connection(4)-16.17.9.160 |
PublisherComponent       | .common.BaseServiceUnitManager  137 | Starting
service unit

>>>>> Start of the component
03:41:45,618 | DEBUG | RMI TCP Connection(4)-16.17.9.160 | PublisherEndpoint    
   
| on.publisher.PublisherEndpoint  224 | start: Entering
03:41:45,619 | DEBUG | RMI TCP Connection(4)-16.17.9.160 |
PublisherComponent       | icemix.common.DefaultComponent   79 | Querying
service description for
ServiceEndpoint[service={http://hp.com/temip/openmediation/http-demo/1.0-SNAPSHOT}publisher,endpoint=endpoint]
03:41:45,620 | DEBUG | RMI TCP Connection(4)-16.17.9.160 |
PublisherComponent       | icemix.common.DefaultComponent   87 | No
description found for
{http://hp.com/temip/openmediation/http-demo/1.0-SNAPSHOT}publisher:endpoint
03:41:45,621 | DEBUG | RMI TCP Connection(4)-16.17.9.160 |
PublisherComponent       | icemix.common.DefaultComponent   79 | Querying
service description for
ServiceEndpoint[service={http://hp.com/temip/openmediation/http-demo/1.0-SNAPSHOT}publisher,endpoint=endpoint]
03:41:45,621 | DEBUG | RMI TCP Connection(4)-16.17.9.160 |
PublisherComponent       | icemix.common.DefaultComponent   87 | No
description found for
{http://hp.com/temip/openmediation/http-demo/1.0-SNAPSHOT}publisher:endpoint


>>>>> A first message is sent to early. Error in the DeliveryChannel:
03:41:45,729 | WARN  | pool-flow.seda.notification-publisher-se-thread-1 |
DeliveryChannelImpl      | .messaging.DeliveryChannelImpl  600 | Error
calling listener: null
java.lang.NullPointerException
        at
org.apache.servicemix.jbi.monitoring.StatisticsService.onExchangeAccepted(StatisticsService.java:307)
        at
org.apache.servicemix.jbi.monitoring.StatisticsService$3.exchangeAccepted(StatisticsService.java:186)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:598)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
        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)

>>>> A second message is sent while the start of the component has not yet
>>>> finished:
03:41:45,730 | DEBUG | pool-flow.seda.notification-publisher-se-thread-1 |
PublisherComponent       | emix.common.AsyncBaseLifeCycle  468 | Received
exchange: status: Active, role: provider
03:41:45,730 | DEBUG | pool-flow.seda.notification-publisher-se-thread-1 |
PublisherComponent       | emix.common.AsyncBaseLifeCycle  536 | Retrieved
correlation id: ID:16.17.9.160-1192d68191b-12:3
03:41:45,731 | DEBUG | pool-flow.seda.notification-publisher-se-thread-1 |
PublisherEndpoint        | on.publisher.PublisherEndpoint   74 |
processInOnly: Entering.
03:41:45,731 | DEBUG | pool-flow.seda.notification-publisher-se-thread-1 |
PublisherEndpoint        | on.publisher.PublisherEndpoint   91 |
manageNotification: Entering.
03:41:45,731 | INFO  | pool-flow.seda.notification-publisher-se-thread-1 |
PublisherEndpoint        | on.publisher.PublisherEndpoint   92 | Managing
message to sent to Notification Service

>>>>> The message is received by the endpoint, but the start has not yet
>>>>> finished.
>>>>> My marshaler is not yet initialized. I check it is not null to avoid a
>>>>> null pointer exception:

03:41:45,735 | WARN  | pool-flow.seda.notification-publisher-se-thread-1 |
PublisherEndpoint        | on.publisher.PublisherEndpoint  102 | Marshaler
is not yet initialized. Message lost:InOnly[
  id: ID:16.17.9.160-1192d68191b-11:12
  status: Active
  role: provider
  service:
{http://hp.com/temip/openmediation/http-demo/1.0-SNAPSHOT}publisher
  endpoint: endpoint
  in: <?xml version="1.0" encoding="UTF-8"?><temip:Alarms
xmlns:temip="http://hp.com/temip/openmediation/x733Alarm";
xmlns:tns="http://hp.com/temip/openmediation/examples/alarm/types";><temip:Alarm><temip:originatingManagedEntity>DeviceNewName
device_0</temip:originatingManagedEntity><temip:alarmRaisedTime>2008-03-08T03:41:45</temip:alarmRaisedTime><temip:perceivedSeverity>CRITICAL</temip:perceivedSeverity><temip:alarmType>COMMUNICATIONS_ALARM</temip:alarmType><temip:additionalText>Web
Service Alarm
0</temip:additionalText><temip:specificProblem>0</temip:specificProblem><temip:probableCause>0</temip:probableCause></temip:Alarm><temip:Alarm><temip:originatingManagedEntity>DeviceNewName
device_1 Slot
1</temip:originatingManagedEntity><temip:alarmRaisedTime>2008-03-08T03:41:45</temip:alarmRaisedTime><temip:perceivedSeverity>MAJOR</temip:perceivedSeverity><temip:alarmType>QUALITY_OF_SERVICE_ALARM</temip:alarmType><temip:additionalText>Web
Service Alarm
1</temip:additionalText><temip:specificProblem>0</temip:specificProblem><temip:probableCause>0</temip:probableCause></temip:Alarm><temip:Alarm><temip:originatingManagedEntity>DeviceNewName
device_2 Slot 1 Port
1</temip:originatingManagedEntity><temip:alarmRaisedTime>2008-03-08T03:41:45</temip:alarmRaisedTime><temip:perceivedSeverity>MINOR</temip:perceivedSeverity><temip:alarmType>PROCESSING_ERROR_ALARM</temip:alarmType><temip:additionalText>Web
Service Alarm
2</temip:additionalText><temip:specificProblem>0</temip:specificProblem><temip:pro...
]
03:41:45,736 | DEBUG | pool-flow.seda.notification-publisher-se-thread-1 |
PublisherEndpoint        | on.publisher.PublisherEndpoint  132 |
manageNotification: Leaving.
03:41:45,736 | DEBUG | pool-flow.seda.notification-publisher-se-thread-1 |
PublisherEndpoint        | on.publisher.PublisherEndpoint   76 |
processInOnly: Leaving.
03:41:45,755 | DEBUG | RMI TCP Connection(4)-16.17.9.160 | PublisherEndpoint    
   
| 

on.publisher.PublisherEndpoint  226 | start: After parent start.
03:41:45,875 | DEBUG | RMI TCP Connection(4)-16.17.9.160 | EntityModelCache     
   
| mediation.msl.EntityModelCache   29 | EntityModelCache: Entering.
03:41:45,876 | DEBUG | RMI TCP Connection(4)-16.17.9.160 |
EntityClassModelHelper   | 
...

>>>>> Now the endpoint start is finished:
03:41:45,912 | DEBUG | RMI TCP Connection(4)-16.17.9.160 | PublisherEndpoint    
   
| on.publisher.PublisherEndpoint  241 | start: Leaving.
03:41:45,913 | DEBUG | RMI TCP Connection(4)-16.17.9.160 |
PublisherComponent       | .common.BaseServiceUnitManager  153 | Service
unit started
-- 
View this message in context: 
http://www.nabble.com/With-ServiceMix-3.2.2%2C-my-BeanEndpoint-can-still-receive-messages-before-it-has-fully-started%2C-same-as-SM-1171.-tp17204292p17204292.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to