Skip to content

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

Closed
@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

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions