Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
None
-
None
-
Mac OSX Tiger
Description
I'm trying to send a message asynchronously from a sender to a receiver using an InOnly exchange. When I call DeliveryChannel.send(), I get the following NullPointerException:
Sending message: Hello?
java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:846)
at org.apache.servicemix.bean.BeanEndpoint$PojoChannel.send(BeanEndpoint.java:566)
at example.Sender$1.run(Sender.java:40)
at java.lang.Thread.run(Thread.java:613)
When I go to the line of code in the BeanEndpoint, I see the following:
requests.put(messageExchange.getExchangeId(), currentRequest.get());
Using my debugger, I noticed the value of currentRequest.get() returns null, which is not allowed in a ConcurrentHashMap (neither null keys nor null values are allowed). the message exchange id is non-null.
I also noticed that currentRequest is only set when the component receives an exchange, which is not the case here.
Both the sender and receiver are using bean endpoints. I have attached the project to this ticket. You can deploy the project using maven, with the following command:
mvn install jbi:projectDeploy