You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ta...@apache.org on 2015/08/28 23:35:27 UTC
qpid-jms git commit: QPIDJMS-51 For the case where browser prefetch
is zero we can default to the default consumer pull implementation.
Repository: qpid-jms
Updated Branches:
refs/heads/master e1b9b2a8f -> dc75f4646
QPIDJMS-51 For the case where browser prefetch is zero we can default to
the default consumer pull implementation.
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/dc75f464
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/dc75f464
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/dc75f464
Branch: refs/heads/master
Commit: dc75f4646f87ef11bcfd25730315c03ddff9a649
Parents: e1b9b2a
Author: Timothy Bish <ta...@gmail.com>
Authored: Fri Aug 28 17:31:31 2015 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Fri Aug 28 17:31:31 2015 -0400
----------------------------------------------------------------------
.../jms/provider/amqp/AmqpQueueBrowser.java | 7 +++++
.../qpid/jms/consumer/JmsQueueBrowserTest.java | 31 ++++++++++++++++++++
2 files changed, 38 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/dc75f464/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpQueueBrowser.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpQueueBrowser.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpQueueBrowser.java
index 3a28e39..7f191a6 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpQueueBrowser.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpQueueBrowser.java
@@ -36,6 +36,13 @@ public class AmqpQueueBrowser extends AmqpConsumer {
@Override
public void pull(final long timeout) {
+
+ // Zero prefetch QueueBrowser behaves the same as a standard pull consumer.
+ if (resource.getPrefetchSize() == 0) {
+ super.pull(timeout);
+ return;
+ }
+
LOG.trace("Pull on browser {} with timeout = {}", getConsumerId(), timeout);
// Pull for browser is called when there are no available messages buffered.
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/dc75f464/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/consumer/JmsQueueBrowserTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/consumer/JmsQueueBrowserTest.java b/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/consumer/JmsQueueBrowserTest.java
index 1423c81..b6c7c9e 100644
--- a/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/consumer/JmsQueueBrowserTest.java
+++ b/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/consumer/JmsQueueBrowserTest.java
@@ -138,6 +138,37 @@ public class JmsQueueBrowserTest extends AmqpTestSupport {
}
@Test(timeout = 60000)
+ public void testBrowseAllInQueueZeroPrefetch() throws Exception {
+ connection = createAmqpConnection();
+
+ JmsConnection jmsConnection = (JmsConnection) connection;
+ jmsConnection.getPrefetchPolicy().setQueueBrowserPrefetch(0);
+
+ connection.start();
+
+ Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ assertNotNull(session);
+ Queue queue = session.createQueue(getDestinationName());
+ sendToAmqQueue(5);
+
+ QueueViewMBean proxy = getProxyToQueue(getDestinationName());
+ assertEquals(5, proxy.getQueueSize());
+
+ QueueBrowser browser = session.createBrowser(queue);
+ assertNotNull(browser);
+ Enumeration enumeration = browser.getEnumeration();
+ int count = 0;
+ while (enumeration.hasMoreElements()) {
+ Message msg = (Message) enumeration.nextElement();
+ assertNotNull(msg);
+ LOG.debug("Recv: {}", msg);
+ count++;
+ }
+ assertFalse(enumeration.hasMoreElements());
+ assertEquals(5, count);
+ }
+
+ @Test(timeout = 60000)
public void testBrowseAllInQueueTxSession() throws Exception {
connection = createAmqpConnection();
connection.start();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org