Uploaded image for project: 'ServiceMix Components'
  1. ServiceMix Components
  2. SMXCOMP-335

Sending an exchange in a thread created by the bean result in a NullpointerException on DeliveryChannel.send()

    XMLWordPrintableJSON

Details

    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

      Attachments

        Activity

          People

            gnodet Guillaume Nodet
            rbohn Ryan Bohn
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: