Skip to content

Enforced container-level acknowledge call for custom acknowledgement mode #34635

@UladzislauBlok

Description

@UladzislauBlok

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

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions