Hi Team, I am currently using "artemis-jakarta-client" 2.31.2 version
I've stumbled into an issue with client acknowledge mode when using JMS API. Here's an example: try (var factory = new ActiveMQConnectionFactory("<broker-url")) { try (var ctx = factory.createContext("<user>", "<password>", JMSContext.CLIENT_ACKNOWLEDGE)) { var destination = ctx.createQueue("<destination>"); try (var consumer = ctx.createConsumer(destination)) { var message1 = consumer.receive(100000); // suppose this call returns real message var message2 = consumer.receive(100000); // suppose this call times out, so NULL is returned ctx.acknowledge(); // I'm expecting that message1 gets acknowledged here, but it's not happening /* Do something here.... */ } } } The reason for ack not working is that the implementation of "consumer.receive" method stores the latest returned value in JMSContext for future usage in its "acknowledge" method. This happens regardless if the value is null or not. So in case latest call returns null, all the previous messages get lost and never acked. This seem like a defect. Am I right? Thanks in advance