From 47c3698db7e5a52a7958ebb635e736b2f95df1f9 Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Tue, 23 Oct 2007 14:50:56 +0000 Subject: Hack for no-local when used with jms topics Fix for releasing of exclusive ownership of queues second time around git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@587525 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/broker/SemanticState.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'cpp/src/qpid/broker/SemanticState.cpp') diff --git a/cpp/src/qpid/broker/SemanticState.cpp b/cpp/src/qpid/broker/SemanticState.cpp index f47726bcf8..1f7436da94 100644 --- a/cpp/src/qpid/broker/SemanticState.cpp +++ b/cpp/src/qpid/broker/SemanticState.cpp @@ -260,12 +260,20 @@ bool SemanticState::ConsumerImpl::deliver(QueuedMessage& msg) parent->deliveryAdapter.deliver(msg.payload, token); if (windowing || ackExpected) { parent->record(DeliveryRecord(msg, queue, name, token, deliveryTag, acquire, !ackExpected)); + } else if (!ackExpected) { + queue->dequeue(0, msg.payload); } } return !blocked; } } +bool SemanticState::ConsumerImpl::filter(Message::shared_ptr msg) +{ + return !(nolocal && + &parent->getSession().getConnection() == msg->getPublisher()); +} + bool SemanticState::ConsumerImpl::checkCredit(Message::shared_ptr& msg) { Mutex::ScopedLock l(lock); -- cgit v1.2.1