From 34ac48d938d5f3411505f7d0f883a585148ec716 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 08 Jan 2010 18:13:58 +0000
Subject: [PATCH] * various minor code fixes * fix unit tests * remove TODOs from Javadoc (issues are now in Issue Tracker)

---
 sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java |  121 +++++++++++++++++++++++++++++-----------
 1 files changed, 87 insertions(+), 34 deletions(-)

diff --git a/sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java b/sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java
index c903cc2..b5233a1 100644
--- a/sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java
+++ b/sdk/src/org/opends/sdk/AbstractLoadBalancingAlgorithm.java
@@ -1,5 +1,34 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ *      Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ *      Copyright 2009 Sun Microsystems, Inc.
+ */
+
 package org.opends.sdk;
 
+
+
 import com.sun.opends.sdk.util.Validator;
 import com.sun.opends.sdk.util.StaticUtils;
 
@@ -7,20 +36,27 @@
 import java.util.ArrayList;
 import java.util.logging.Level;
 
+
+
 /**
- * Created by IntelliJ IDEA. User: digitalperk Date: Dec 15, 2009 Time: 3:49:17
- * PM To change this template use File | Settings | File Templates.
+ * Created by IntelliJ IDEA. User: digitalperk Date: Dec 15, 2009 Time:
+ * 3:49:17 PM To change this template use File | Settings | File
+ * Templates.
  */
-public abstract class AbstractLoadBalancingAlgorithm
-    implements LoadBalancingAlgorithm
+public abstract class AbstractLoadBalancingAlgorithm implements
+    LoadBalancingAlgorithm
 {
   protected final List<MonitoredConnectionFactory> factoryList;
 
-  protected AbstractLoadBalancingAlgorithm(ConnectionFactory<?>... factories)
+
+
+  protected AbstractLoadBalancingAlgorithm(
+      ConnectionFactory<?>... factories)
   {
-    Validator.ensureNotNull(factories);
-    factoryList = new ArrayList<MonitoredConnectionFactory>(factories.length);
-    for(ConnectionFactory<?> f : factories)
+    Validator.ensureNotNull((Object[]) factories);
+    factoryList = new ArrayList<MonitoredConnectionFactory>(
+        factories.length);
+    for (ConnectionFactory<?> f : factories)
     {
       factoryList.add(new MonitoredConnectionFactory(f));
     }
@@ -28,30 +64,42 @@
     new MonitorThread().start();
   }
 
-  protected class MonitoredConnectionFactory
-      extends AbstractConnectionFactory<AsynchronousConnection>
-      implements ResultHandler<AsynchronousConnection>
+
+
+  protected class MonitoredConnectionFactory extends
+      AbstractConnectionFactory<AsynchronousConnection> implements
+      ResultHandler<AsynchronousConnection>
   {
     private final ConnectionFactory<?> factory;
+
     private volatile boolean isOperational;
+
     private volatile FutureResult<?> pendingConnectFuture;
 
+
+
     private MonitoredConnectionFactory(ConnectionFactory<?> factory)
     {
       this.factory = factory;
       this.isOperational = true;
     }
 
+
+
     public boolean isOperational()
     {
       return isOperational;
     }
 
+
+
     public void handleErrorResult(ErrorResultException error)
     {
       isOperational = false;
     }
 
+
+
     public void handleResult(AsynchronousConnection result)
     {
       isOperational = true;
@@ -59,44 +107,43 @@
       result.close();
     }
 
-    public FutureResult<? extends AsynchronousConnection>
-      getAsynchronousConnection(
+
+
+    public FutureResult<? extends AsynchronousConnection> getAsynchronousConnection(
         final ResultHandler<? super AsynchronousConnection> resultHandler)
     {
-      ResultHandler handler = new ResultHandler<AsynchronousConnection>()
+      ResultHandler<AsynchronousConnection> handler = new ResultHandler<AsynchronousConnection>()
       {
         public void handleErrorResult(ErrorResultException error)
         {
           isOperational = false;
-          if(resultHandler != null)
+          if (resultHandler != null)
           {
             resultHandler.handleErrorResult(error);
           }
           if (StaticUtils.DEBUG_LOG.isLoggable(Level.WARNING))
           {
-            StaticUtils.DEBUG_LOG
-                .warning(String
-                    .format(
-                    "Connection factory " + factory +
-                        " is no longer operational: "
-                        + error.getMessage()));
+            StaticUtils.DEBUG_LOG.warning(String
+                .format("Connection factory " + factory
+                    + " is no longer operational: "
+                    + error.getMessage()));
           }
         }
 
+
+
         public void handleResult(AsynchronousConnection result)
         {
           isOperational = true;
-          if(resultHandler != null)
+          if (resultHandler != null)
           {
             resultHandler.handleResult(result);
           }
           if (StaticUtils.DEBUG_LOG.isLoggable(Level.WARNING))
           {
-            StaticUtils.DEBUG_LOG
-                .warning(String
-                    .format(
-                    "Connection factory " + factory +
-                        " is now operational"));
+            StaticUtils.DEBUG_LOG.warning(String
+                .format("Connection factory " + factory
+                    + " is now operational"));
           }
         }
       };
@@ -104,6 +151,8 @@
     }
   }
 
+
+
   private class MonitorThread extends Thread
   {
     private MonitorThread()
@@ -112,21 +161,25 @@
       this.setDaemon(true);
     }
 
+
+
     public void run()
     {
-      while(true)
+      while (true)
       {
-        for(MonitoredConnectionFactory f : factoryList)
+        for (MonitoredConnectionFactory f : factoryList)
         {
-          if(!f.isOperational && (f.pendingConnectFuture == null ||
-              f.pendingConnectFuture.isDone()))
+          if (!f.isOperational
+              && (f.pendingConnectFuture == null || f.pendingConnectFuture
+                  .isDone()))
           {
             if (StaticUtils.DEBUG_LOG.isLoggable(Level.FINEST))
             {
-              StaticUtils.DEBUG_LOG
-                  .finest(String.format("Attempting connect on factory " + f));
+              StaticUtils.DEBUG_LOG.finest(String
+                  .format("Attempting connect on factory " + f));
             }
-            f.pendingConnectFuture = f.factory.getAsynchronousConnection(f);
+            f.pendingConnectFuture = f.factory
+                .getAsynchronousConnection(f);
           }
         }
         try

--
Gitblit v1.10.0