diff options
| author | Alan Conway <aconway@apache.org> | 2010-01-06 17:01:12 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2010-01-06 17:01:12 +0000 |
| commit | de23cb5942844463a237cff18c30e5f43ea5d5d0 (patch) | |
| tree | 46bec589834871e67d7451aa472b0bb3c0cc5a4a /cpp | |
| parent | 469c2fe3cf3ecd99799074a67adc374381ac4533 (diff) | |
| download | qpid-python-de23cb5942844463a237cff18c30e5f43ea5d5d0.tar.gz | |
Exception handling for URL parsing in cluster.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@896537 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
| -rw-r--r-- | cpp/src/qpid/cluster/Cluster.cpp | 14 | ||||
| -rw-r--r-- | cpp/src/qpid/cluster/ClusterMap.cpp | 10 |
2 files changed, 16 insertions, 8 deletions
diff --git a/cpp/src/qpid/cluster/Cluster.cpp b/cpp/src/qpid/cluster/Cluster.cpp index 738a9fc5c4..cdeb89188b 100644 --- a/cpp/src/qpid/cluster/Cluster.cpp +++ b/cpp/src/qpid/cluster/Cluster.cpp @@ -687,11 +687,15 @@ void Cluster::initialStatus(const MemberId& member, uint32_t version, bool activ } void Cluster::ready(const MemberId& id, const std::string& url, Lock& l) { - if (map.ready(id, Url(url))) - memberUpdate(l); - if (state == CATCHUP && id == self) { - setReady(l); - QPID_LOG(notice, *this << " caught up."); + try { + if (map.ready(id, Url(url))) + memberUpdate(l); + if (state == CATCHUP && id == self) { + setReady(l); + QPID_LOG(notice, *this << " caught up."); + } + } catch (const Url::Invalid& e) { + QPID_LOG(error, "Invalid URL in cluster ready command: " << url); } } diff --git a/cpp/src/qpid/cluster/ClusterMap.cpp b/cpp/src/qpid/cluster/ClusterMap.cpp index 8cac470ef3..85ed447113 100644 --- a/cpp/src/qpid/cluster/ClusterMap.cpp +++ b/cpp/src/qpid/cluster/ClusterMap.cpp @@ -137,9 +137,13 @@ ostream& operator<<(ostream& o, const ClusterMap& m) { } bool ClusterMap::updateRequest(const MemberId& id, const string& url) { - if (isAlive(id)) { - joiners[id] = Url(url); - return true; + try { + if (isAlive(id)) { + joiners[id] = Url(url); + return true; + } + } catch (const Url::Invalid&) { + QPID_LOG(error, "Invalid URL in cluster update request: " << url); } return false; } |
