Return-Path: Delivered-To: apmail-incubator-qpid-commits-archive@locus.apache.org Received: (qmail 2801 invoked from network); 19 Oct 2007 11:28:22 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 19 Oct 2007 11:28:22 -0000 Received: (qmail 73277 invoked by uid 500); 19 Oct 2007 11:28:09 -0000 Delivered-To: apmail-incubator-qpid-commits-archive@incubator.apache.org Received: (qmail 73265 invoked by uid 500); 19 Oct 2007 11:28:09 -0000 Mailing-List: contact qpid-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: qpid-dev@incubator.apache.org Delivered-To: mailing list qpid-commits@incubator.apache.org Received: (qmail 73256 invoked by uid 99); 19 Oct 2007 11:28:09 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 19 Oct 2007 04:28:09 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 19 Oct 2007 11:28:21 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 49E921A9832; Fri, 19 Oct 2007 04:28:01 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r586382 - in /incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client: BasicMessageConsumer.java BasicMessageConsumer_0_10.java Date: Fri, 19 Oct 2007 11:28:00 -0000 To: qpid-commits@incubator.apache.org From: arnaudsimon@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20071019112801.49E921A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: arnaudsimon Date: Fri Oct 19 04:28:00 2007 New Revision: 586382 URL: http://svn.apache.org/viewvc?rev=586382&view=rev Log: changed to handle async pre-fetch Modified: incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java Modified: incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java?rev=586382&r1=586381&r2=586382&view=diff ============================================================================== --- incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java (original) +++ incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java Fri Oct 19 04:28:00 2007 @@ -207,7 +207,7 @@ return _acknowledgeMode; } - private boolean isMessageListenerSet() + protected boolean isMessageListenerSet() { return _messageListener.get() != null; } Modified: incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java?rev=586382&r1=586381&r2=586382&view=diff ============================================================================== --- incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java (original) +++ incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java Fri Oct 19 04:28:00 2007 @@ -53,6 +53,12 @@ * A counter for keeping the number of available messages for this consumer */ private final AtomicLong _messageCounter = new AtomicLong(0); + + /** + * Number of received message so far + */ + private final AtomicLong _messagesReceived = new AtomicLong(0); + /** * This class logger */ @@ -135,6 +141,18 @@ public void onMessage(Message message) { + if( isMessageListenerSet()) + { + _messagesReceived.incrementAndGet(); + if( _messagesReceived.get() >= AMQSession_0_10.MAX_PREFETCH ) + { + // require more credit + _0_10session.getQpidSession().messageFlow(getConsumerTag().toString(), + org.apache.qpidity.nclient.Session.MESSAGE_FLOW_UNIT_MESSAGE, + AMQSession_0_10.MAX_PREFETCH); + _messagesReceived.set(0); + } + } int channelId = getSession().getChannelId(); long deliveryId = message.getMessageTransferId(); String consumerTag = getConsumerTag().toString(); @@ -417,6 +435,7 @@ org.apache.qpidity.nclient.Session.MESSAGE_FLOW_UNIT_BYTE, 0xFFFFFFFF); _0_10session.getQpidSession().sync(); + _messagesReceived.set(0);; } } }