summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java1
-rw-r--r--java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeTest.java16
2 files changed, 17 insertions, 0 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java b/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java
index d1fb852c06..e5fc36c389 100644
--- a/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java
+++ b/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java
@@ -102,6 +102,7 @@ public final class AMQSession_0_8 extends AMQSession<BasicMessageConsumer_0_8, B
}
getProtocolHandler().writeFrame(ackFrame);
+ _unacknowledgedMessageTags.remove(deliveryTag);
}
public void sendQueueBind(final AMQShortString queueName, final AMQShortString routingKey, final FieldTable arguments,
diff --git a/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeTest.java b/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeTest.java
index d0814ca5fc..b63f990791 100644
--- a/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeTest.java
+++ b/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeTest.java
@@ -31,6 +31,7 @@ import javax.jms.Session;
import org.apache.qpid.client.AMQDestination;
import org.apache.qpid.client.AMQSession;
+import org.apache.qpid.client.message.AbstractJMSMessage;
import org.apache.qpid.test.utils.QpidTestCase;
public class AcknowledgeTest extends QpidTestCase
@@ -141,4 +142,19 @@ public class AcknowledgeTest extends QpidTestCase
testMessageAck(true, Session.AUTO_ACKNOWLEDGE);
}
+ public void testIndividualAck() throws Exception
+ {
+ init(false, Session.CLIENT_ACKNOWLEDGE);
+ sendMessages(3);
+ Message msg = null;
+ for (int i = 0; i < 2; i++)
+ {
+ msg = _consumerA.receive(RECEIVE_TIMEOUT);
+ ((AbstractJMSMessage)msg).acknowledgeThis();
+ }
+ msg = _consumerA.receive(RECEIVE_TIMEOUT);
+ msg.acknowledge();
+ _con.close();
+ }
+
}