summaryrefslogtreecommitdiff
path: root/java/client
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2009-09-22 03:11:56 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2009-09-22 03:11:56 +0000
commit4551735283dd89c17529782305679a9ac744d31f (patch)
tree7eacfe62f9b467134b619179bd91fbf22302739c /java/client
parent64d8aabd6c94bab62ab31a8e81bb16e3f0bdffa5 (diff)
downloadqpid-python-4551735283dd89c17529782305679a9ac744d31f.tar.gz
This is a fix for QPID-1956
Added a check in the getNextBrokerDetails method to return null when the current broker equals the only remaining broker in the list A test case for this will be added once I finalized the test case for the failover exchange method git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@817487 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/client')
-rw-r--r--java/client/src/main/java/org/apache/qpid/jms/failover/FailoverExchangeMethod.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverExchangeMethod.java b/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverExchangeMethod.java
index e05a7ab6e2..960661daea 100644
--- a/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverExchangeMethod.java
+++ b/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverExchangeMethod.java
@@ -189,7 +189,8 @@ public class FailoverExchangeMethod implements FailoverMethod, MessageListener
{
synchronized (_brokerListLock)
{
- return _connectionDetails.getBrokerDetails(_currentBrokerIndex);
+ _currentBrokerDetail = _connectionDetails.getBrokerDetails(_currentBrokerIndex);
+ return _currentBrokerDetail;
}
}
@@ -214,7 +215,15 @@ public class FailoverExchangeMethod implements FailoverMethod, MessageListener
broker.getHost().equals(_currentBrokerDetail.getHost()) &&
broker.getPort() == _currentBrokerDetail.getPort())
{
- return getNextBrokerDetails();
+ if (_connectionDetails.getBrokerCount() > 1)
+ {
+ return getNextBrokerDetails();
+ }
+ else
+ {
+ _failedAttemps ++;
+ return null;
+ }
}
String delayStr = broker.getProperty(BrokerDetails.OPTIONS_CONNECT_DELAY);