From ab65488008895376c5f74ead6d1cc5d2568fd8a5 Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Wed, 10 Nov 2010 16:51:16 +0000 Subject: Fix to r1028346: no point in throwing exception after queue has already been created, so just log error and revert to default (do this for floating point values also) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1033585 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/broker/QueuePolicy.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'cpp/src/qpid') diff --git a/cpp/src/qpid/broker/QueuePolicy.cpp b/cpp/src/qpid/broker/QueuePolicy.cpp index c1d979ac33..f311ea8321 100644 --- a/cpp/src/qpid/broker/QueuePolicy.cpp +++ b/cpp/src/qpid/broker/QueuePolicy.cpp @@ -123,17 +123,23 @@ uint32_t QueuePolicy::getCapacity(const FieldTable& settings, const std::string& int32_t result = 0; if (!v) return defaultValue; - if (v->convertsTo()) { + if (v->getType() == 0x23) { + QPID_LOG(debug, "Value for " << key << " specified as float: " << v->get()); + } else if (v->getType() == 0x33) { + QPID_LOG(debug, "Value for " << key << " specified as double: " << v->get()); + } else if (v->convertsTo()) { result = v->get(); + QPID_LOG(debug, "Got integer value for " << key << ": " << result); if (result >= 0) return result; - } - else { - string s(v->get()); // I assume anything can be converted to a string + } else if (v->convertsTo()) { + string s(v->get()); + QPID_LOG(debug, "Got string value for " << key << ": " << s); std::istringstream convert(s); if (convert >> result && result >= 0) return result; } - throw InvalidArgumentException(QPID_MSG("Cannot convert " << key << " to unsigned integer")); + QPID_LOG(warning, "Cannot convert " << key << " to unsigned integer, using default (" << defaultValue << ")"); + return defaultValue; } std::string QueuePolicy::getType(const FieldTable& settings) -- cgit v1.2.1