Description
Hello Spring comunity,
I was recently in the process of migrating a project from Spring Boot 2.6.14 to 3.3.4.
In our project we are using Tibco EMS, and their custom ack mode: EXPLICIT_CLIENT_ACKNOWLEDGE
(tibco doc), as we want to have control over each individual message.
After the migration I encountered the problem that during the acknowledgement exceptions were being thrown, while the messages were acknowledged.
The root of the problem was a new implementation of the isClientAcknowledgement method (added in this PR).
The problem flow is the following: read message -> manually acknowledge -> AbstractMessageListenerContainer tries to acknowledge the message a second time, which causes an exception to be thrown.
Link to the repo with the reproduced problem: link
In the above repo the problem was reproduced on Embedded ActiveMQ (with ack mode INDIVIDUAL_ACKNOWLEDGE), but it looks the same for Tibco EMS as well