From 0787688bfce0afdfba92b3143fffae9bf652bf1d Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Wed, 30 Jun 2010 21:55:17 +0000 Subject: QPID-664: corrected option name for setting subscribe options on a queue git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@959451 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp | 4 ++-- qpid/cpp/src/tests/MessagingSessionTests.cpp | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) (limited to 'qpid/cpp/src') diff --git a/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp b/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp index b819906677..f1295a3b66 100644 --- a/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp +++ b/qpid/cpp/src/qpid/client/amqp0_10/AddressResolution.cpp @@ -452,8 +452,8 @@ QueueSource::QueueSource(const Address& address) : //extract subscription arguments from address options (nb: setting //of accept-mode/acquire-mode/destination controlled though other //options) - exclusive = Opt(address)/NODE/LINK/X_SUBSCRIBE/EXCLUSIVE; - (Opt(address)/NODE/LINK/X_SUBSCRIBE/ARGUMENTS).collect(options); + exclusive = Opt(address)/LINK/X_SUBSCRIBE/EXCLUSIVE; + (Opt(address)/LINK/X_SUBSCRIBE/ARGUMENTS).collect(options); } void QueueSource::subscribe(qpid::client::AsyncSession& session, const std::string& destination) diff --git a/qpid/cpp/src/tests/MessagingSessionTests.cpp b/qpid/cpp/src/tests/MessagingSessionTests.cpp index 6fee1233d6..c22cb4bf73 100644 --- a/qpid/cpp/src/tests/MessagingSessionTests.cpp +++ b/qpid/cpp/src/tests/MessagingSessionTests.cpp @@ -756,6 +756,19 @@ QPID_AUTO_TEST_CASE(testSendSpecialProperties) BOOST_CHECK_EQUAL(in.getMessageProperties().getMessageId().str(), out.getMessageId()); } +QPID_AUTO_TEST_CASE(testExclusiveSubscriber) +{ + QueueFixture fix; + std::string address = (boost::format("%1%; { link: { x-subscribe : { exclusive:true } } }") % fix.queue).str(); + Receiver receiver = fix.session.createReceiver(address); + ScopedSuppressLogging sl; + try { + fix.session.createReceiver(address); + fix.session.sync(); + BOOST_FAIL("Expected exception."); + } catch (const MessagingException& e) {} +} + QPID_AUTO_TEST_SUITE_END() -- cgit v1.2.1