From ead1307223c73d6efcc5573c177a22e238440f39 Mon Sep 17 00:00:00 2001 From: Kim van der Riet Date: Fri, 28 Jan 2011 14:56:01 +0000 Subject: Fix for RHBZ656385: "Data store can become corrupt with small store file size and large wcache-page-size". The second issue from comments 13-16 in which the queue remains after the store throws the exception is solved. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1064711 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/broker/SessionAdapter.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'cpp/src/qpid/broker/SessionAdapter.cpp') diff --git a/cpp/src/qpid/broker/SessionAdapter.cpp b/cpp/src/qpid/broker/SessionAdapter.cpp index d4f6b28ccb..3d62e73185 100644 --- a/cpp/src/qpid/broker/SessionAdapter.cpp +++ b/cpp/src/qpid/broker/SessionAdapter.cpp @@ -371,7 +371,8 @@ void SessionAdapter::QueueHandlerImpl::declare(const string& name, const string& } //apply settings & create persistent record if required - queue_created.first->create(arguments); + try { queue_created.first->create(arguments); } + catch (...) { getBroker().getQueues().destroy(name); throw; } //add default binding: getBroker().getExchanges().getDefault()->bind(queue, name, 0); -- cgit v1.2.1