Author: gsim Date: Tue Dec 15 09:50:30 2009 New Revision: 890721 URL: http://svn.apache.org/viewvc?rev=890721&view=rev Log: QPID-2089: Dequeue on acquire for accept mode NONE
Modified: qpid/trunk/qpid/cpp/src/qpid/broker/DeliveryRecord.cpp qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp Modified: qpid/trunk/qpid/cpp/src/qpid/broker/DeliveryRecord.cpp URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/DeliveryRecord.cpp?rev=890721&r1=890720&r2=890721&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/broker/DeliveryRecord.cpp (original) +++ qpid/trunk/qpid/cpp/src/qpid/broker/DeliveryRecord.cpp Tue Dec 15 09:50:30 2009 @@ -43,7 +43,7 @@ acceptExpected(!accepted), cancelled(false), completed(false), - ended(accepted), + ended(accepted && acquired), windowing(_windowing), credit(msg.payload ? msg.payload->getRequiredCredit() : _credit) {} @@ -150,6 +150,10 @@ if (queue->acquire(msg)) { acquired = true; results.push_back(id); + if (!acceptExpected) { + if (ended) { QPID_LOG(error, "Can't dequeue ended message"); } + else { queue->dequeue(0, msg); setEnded(); } + } } else { QPID_LOG(info, "Message already acquired " << id.getValue()); } Modified: qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp?rev=890721&r1=890720&r2=890721&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp (original) +++ qpid/trunk/qpid/cpp/src/qpid/broker/SemanticState.cpp Tue Dec 15 09:50:30 2009 @@ -311,7 +311,7 @@ bool sync = syncFrequency && ++deliveryCount >= syncFrequency; if (sync) deliveryCount = 0;//reset parent->deliver(record, sync); - if (!ackExpected) record.setEnded();//allows message to be released now its been delivered + if (!ackExpected && acquire) record.setEnded();//allows message to be released now its been delivered if (windowing || ackExpected || !acquire) { parent->record(record); } --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:commits-subscr...@qpid.apache.org