Github user jbertram commented on the pull request:
https://github.com/apache/activemq-artemis/commit/a2da41ee2e347bcf8fe721bded89e4a78ca14cfb#commitcomment-29888281
In
artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessageProducer.java:
In
artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQMessageProducer.java
on line 574:
The double confirm situation is described in the comment. Basically, while
the failed async packet is not confirmed subsequent packets may be confirmed
which will in turn confirm previously unconfirmed packets (see
`org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl#clearUpTo`).
I could not determine how to maintain compatibility with current behavior and
add this new feature without this `active` check. That said, I will certainly
change it to be an atomic field updater.
---