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
