NullPointerException in servicemix-eip endpoints
-------------------------------------------------
Key: SMXCOMP-741
URL: https://issues.apache.org/activemq/browse/SMXCOMP-741
Project: ServiceMix Components
Issue Type: Bug
Components: servicemix-eip
Affects Versions: servicemix-eip-2008.01
Environment: ServiceMix 3.3, Java 1.5_14
Reporter: Alexander Zobkov
StaticRoutingSlip endpoint throws NullPointerException:
{noformat}
java.lang.NullPointerException
at
org.apache.servicemix.eip.patterns.StaticRoutingSlip.processProviderAsync(StaticRoutingSlip.java:172)
at
org.apache.servicemix.eip.patterns.StaticRoutingSlip.processAsync(StaticRoutingSlip.java:141)
at org.apache.servicemix.eip.EIPEndpoint.process(EIPEndpoint.java:165)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
at
org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
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)
{noformat}
{code:java}
} else {
MessageExchange me = getExchangeFactory().createInOutExchange();
me.setProperty(correlation, exchange.getExchangeId());
me.setProperty(index, new Integer(0));
targets[0].configureTarget(me, getContext());
//171
store.store(exchange.getExchangeId(), exchange); //
172
MessageUtil.transferInToIn(exchange, me);
// 173
send(me);
}
{code}
To reproduce exception you need to:
1) Stop(not shutdown) some SA with ant-tasks or jconsole;
2) Stop/kill ServiceMix;
3) Start ServiceMix;
4) Send some message through static-routing-slip endpoint;
Based on source code analyze -- problem in 'store' initialization and affects
all servicemix-eip endpoints, but not in SA/SU state restoration. It seems
SA/SU state restoration procedure conforms to JBI spec.
There is general question how eip endpoints should work in 'stopped' state from
JBI point of view? Perhaps eip endpoints should send Fault messages in
'stopped' state.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.