From ec94396bd9c3e5e05376dbbc0254d3030e0b1728 Mon Sep 17 00:00:00 2001 From: Keith Wall Date: Tue, 11 Oct 2011 16:00:17 +0000 Subject: QPID-3542: Java client does not ack non-matching messages when using client side selectors (CPP Broker) Applied patch from Andrew MacBean and myself. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1181861 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/client/BasicMessageConsumer_0_10.java | 102 ++++++++------------- .../org/apache/qpid/filter/JMSSelectorFilter.java | 10 +- .../qpid/test/unit/topic/TopicSessionTest.java | 67 +++++++------- java/test-profiles/CPPExcludes | 3 - 4 files changed, 76 insertions(+), 106 deletions(-) diff --git a/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java b/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java index 3c24c67f9b..5fba351d8a 100644 --- a/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java +++ b/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java @@ -150,13 +150,20 @@ public class BasicMessageConsumer_0_10 extends BasicMessageConsumer 0) - { - result = true; - } + final RangeSet acquired = acq.getTransfers(); + if (acquired != null && acquired.size() > 0) + { + result = true; } return result; } + private void messageFlow() + { + _0_10session.getQpidSession().messageFlow(getConsumerTagString(), + MessageCreditUnit.MESSAGE, 1, + Option.UNRELIABLE); + } public void setMessageListener(final MessageListener messageListener) throws JMSException { @@ -364,9 +348,7 @@ public class BasicMessageConsumer_0_10 extends BasicMessageConsumer