Author: rajith
Date: Thu May 14 19:50:23 2009
New Revision: 774899

URL: http://svn.apache.org/viewvc?rev=774899&view=rev
Log:
This is a fix for QPID-1859
For FailoverSingleServer the default for retries is set to 0 and the 
current_retries start from 0 instead of -1.
For FailoverRoundRobinServers the current_broker_index now starts from 0 
instead of -1.
The AMQConnection now uses the getCurrentBrokerDetails() instead of the 
getNextBrokerDetails() to get the initial broker to connect.

Modified:
    
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
    
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverRoundRobinServers.java
    
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverSingleServer.java

Modified: 
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java?rev=774899&r1=774898&r2=774899&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
 (original)
+++ 
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
 Thu May 14 19:50:23 2009
@@ -455,7 +455,7 @@
         }
         
         _failoverPolicy = new FailoverPolicy(connectionURL, this);
-        BrokerDetails brokerDetails = _failoverPolicy.getNextBrokerDetails();
+        BrokerDetails brokerDetails = 
_failoverPolicy.getCurrentBrokerDetails();
         if (brokerDetails.getTransport().equals(BrokerDetails.VM))
         {
             _delegate = new AMQConnectionDelegate_8_0(this);

Modified: 
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverRoundRobinServers.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverRoundRobinServers.java?rev=774899&r1=774898&r2=774899&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverRoundRobinServers.java
 (original)
+++ 
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverRoundRobinServers.java
 Thu May 14 19:50:23 2009
@@ -35,19 +35,19 @@
     public static final int DEFAULT_SERVER_RETRIES = 0;
 
     /** The index into the hostDetails array of the broker to which we are 
connected */
-    private int _currentBrokerIndex = -1;
+    private int _currentBrokerIndex = 0;
 
     /** The number of times to retry connecting for each server */
     private int _serverRetries;
 
     /** The current number of retry attempts made */
-    private int _currentServerRetry;
+    private int _currentServerRetry = 0;
 
     /** The number of times to cycle through the servers */
     private int _cycleRetries;
 
     /** The current number of cycles performed. */
-    private int _currentCycleRetries;
+    private int _currentCycleRetries = 0;
 
     /** Array of BrokerDetail used to make connections. */
     protected ConnectionURL _connectionDetails;
@@ -62,7 +62,7 @@
         _connectionDetails = connectionDetails;
 
         // There is no current broker at startup so set it to -1.
-        _currentBrokerIndex = -1;
+        _currentBrokerIndex = 0;
 
         String cycleRetries = 
_connectionDetails.getFailoverOption(ConnectionURL.OPTIONS_FAILOVER_CYCLE);
 
@@ -83,18 +83,21 @@
         _currentCycleRetries = 0;
 
         _serverRetries = 0;
-        _currentServerRetry = -1;
+        _currentServerRetry = 0;
     }
 
     public void reset()
     {
         _currentBrokerIndex = 0;
         _currentCycleRetries = 0;
-        _currentServerRetry = -1;
+        _currentServerRetry = 0;
     }
 
     public boolean failoverAllowed()
     {
+        System.out.println("====================================");
+        System.out.println(toString());
+        System.out.println("====================================");
         return ((_currentCycleRetries < _cycleRetries) || (_currentServerRetry 
< _serverRetries));
                 //|| (_currentBrokerIndex <= 
(_connectionDetails.getBrokerCount() - 1)));
     }
@@ -102,16 +105,11 @@
     public void attainedConnection()
     {
         _currentCycleRetries = 0;
-        _currentServerRetry = -1;
+        _currentServerRetry = 0;
     }
 
     public BrokerDetails getCurrentBrokerDetails()
     {
-        if (_currentBrokerIndex == -1)
-        {
-            return null;
-        }
-
         return _connectionDetails.getBrokerDetails(_currentBrokerIndex);
     }
 
@@ -123,20 +121,8 @@
         {
             if (_currentServerRetry < _serverRetries)
             {
-                if (_currentBrokerIndex == -1)
-                {
-                    _currentBrokerIndex = 0;
-
-                    
setBroker(_connectionDetails.getBrokerDetails(_currentBrokerIndex));
-
-                    _logger.info("First run using " + 
_connectionDetails.getBrokerDetails(_currentBrokerIndex));
-                }
-                else
-                {
-                    _logger.info("Retrying " + 
_connectionDetails.getBrokerDetails(_currentBrokerIndex));
-                    doDelay=true;
-                }
-
+                _logger.info("Trying " + 
_connectionDetails.getBrokerDetails(_currentBrokerIndex));
+                doDelay= _currentBrokerIndex != 0;
                 _currentServerRetry++;
             }
             else
@@ -156,19 +142,8 @@
         {
             if (_currentServerRetry < _serverRetries)
             {
-                if (_currentBrokerIndex == -1)
-                {
-                    _currentBrokerIndex = 0;
-
-                    
setBroker(_connectionDetails.getBrokerDetails(_currentBrokerIndex));
-
-                    _logger.info("First run using " + 
_connectionDetails.getBrokerDetails(_currentBrokerIndex));
-                }
-                else
-                {
-                    _logger.info("Retrying " + 
_connectionDetails.getBrokerDetails(_currentBrokerIndex));
-                    doDelay=true;
-                }
+                _logger.info("Trying " + 
_connectionDetails.getBrokerDetails(_currentBrokerIndex));
+                doDelay= _currentBrokerIndex != 0;
 
                 _currentServerRetry++;
             }
@@ -227,7 +202,7 @@
             }
         }
 
-        _currentServerRetry = -1;
+        _currentServerRetry = 0;
         _currentBrokerIndex = index;
     }
 

Modified: 
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverSingleServer.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverSingleServer.java?rev=774899&r1=774898&r2=774899&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverSingleServer.java
 (original)
+++ 
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverSingleServer.java
 Thu May 14 19:50:23 2009
@@ -30,7 +30,7 @@
     private static final Logger _logger = 
LoggerFactory.getLogger(FailoverSingleServer.class);
 
     /** The default number of times to rety a conection to this server */
-    public static final int DEFAULT_SERVER_RETRIES = 1;
+    public static final int DEFAULT_SERVER_RETRIES = 0;
 
     /** The details of the Single Server */
     private BrokerDetails _brokerDetail;
@@ -39,7 +39,7 @@
     protected int _retries;
 
     /** The current number of attempts made to the server */
-    protected int _currentRetries;
+    protected int _currentRetries = 0;
 
 
     public FailoverSingleServer(ConnectionURL connectionDetails)
@@ -61,7 +61,7 @@
 
     public void reset()
     {
-        _currentRetries = -1;
+        _currentRetries = 0;
     }
 
     public boolean failoverAllowed()



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org

Reply via email to