Hi all,

when sendAndReceiveCas() of an AS Engine is Thread.interrupt()-ed it can happen 
that the ActiveMQMessageSender does not have a cacheEntry of the CAS that's 
sending the request anymore [1] for that a warning is logged.
However directly after that the cacheEntry is deferenced leading to a NPE [2].
This exception will then be swallowed by BaseMessageSender [3] and the process 
will be retried [4].

This behavior is rather unfortunate.
It would be benefitial to add a null check at [2] that the cacheEntry is there 
before accessing ist. Also at [3] instead of swallowing all exceptions they 
should be logged at debug level.

I would be happy if someone could incorporate these changes.

Cheers
Patrick

[1]: 
https://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/ActiveMQMessageSender.java?revision=1818052&view=markup#l317
[2]: 
https://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/ActiveMQMessageSender.java?revision=1818052&view=markup#l370
[3]: 
https://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java?revision=1820897&view=markup#l347
[4]: 
https://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/client/BaseMessageSender.java?revision=1820897&view=markup#l338

Reply via email to