From 72650d4cc41c64136d064967d7fec3726d850fee Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Thu, 14 Oct 2010 11:52:28 +0000
Subject: [PATCH] Multiple enhancements and bug fixes to the SDK (update from OpenDS by matthew_swift):

---
 sdk/src/com/sun/opends/sdk/ldap/LDAPConnectionFactoryImpl.java |   69 ++++++++++++++++++++++++----------
 1 files changed, 49 insertions(+), 20 deletions(-)

diff --git a/sdk/src/com/sun/opends/sdk/ldap/LDAPConnectionFactoryImpl.java b/sdk/src/com/sun/opends/sdk/ldap/LDAPConnectionFactoryImpl.java
index d56efdd..9b9c24f 100644
--- a/sdk/src/com/sun/opends/sdk/ldap/LDAPConnectionFactoryImpl.java
+++ b/sdk/src/com/sun/opends/sdk/ldap/LDAPConnectionFactoryImpl.java
@@ -42,13 +42,13 @@
 import org.opends.sdk.responses.Responses;
 import org.opends.sdk.responses.Result;
 
-import com.sun.grizzly.CompletionHandler;
-import com.sun.grizzly.Connection;
-import com.sun.grizzly.EmptyCompletionHandler;
-import com.sun.grizzly.filterchain.DefaultFilterChain;
-import com.sun.grizzly.filterchain.FilterChain;
-import com.sun.grizzly.filterchain.TransportFilter;
-import com.sun.grizzly.nio.transport.TCPNIOTransport;
+import org.glassfish.grizzly.CompletionHandler;
+import org.glassfish.grizzly.Connection;
+import org.glassfish.grizzly.EmptyCompletionHandler;
+import org.glassfish.grizzly.filterchain.DefaultFilterChain;
+import org.glassfish.grizzly.filterchain.FilterChain;
+import org.glassfish.grizzly.filterchain.TransportFilter;
+import org.glassfish.grizzly.nio.transport.TCPNIOTransport;
 import com.sun.opends.sdk.util.CompletedFutureResult;
 import com.sun.opends.sdk.util.FutureResultTransformer;
 import com.sun.opends.sdk.util.RecursiveFutureResult;
@@ -87,7 +87,10 @@
           // Ensure that the connection is closed.
           try
           {
-            connection.close();
+            if (connection != null)
+            {
+              connection.close();
+            }
           }
           catch (final Exception e)
           {
@@ -148,10 +151,10 @@
                     @Override
                     public void failed(final Throwable throwable)
                     {
-                      final Result errorResult = Responses.newResult(
-                          ResultCode.CLIENT_SIDE_CONNECT_ERROR).setCause(
-                          throwable).setDiagnosticMessage(
-                          throwable.getMessage());
+                      final Result errorResult = Responses
+                          .newResult(ResultCode.CLIENT_SIDE_CONNECT_ERROR)
+                          .setCause(throwable)
+                          .setDiagnosticMessage(throwable.getMessage());
                       handler.handleErrorResult(ErrorResultException
                           .wrap(errorResult));
                     }
@@ -160,9 +163,9 @@
             }
             catch (final IOException ioe)
             {
-              final Result errorResult = Responses.newResult(
-                  ResultCode.CLIENT_SIDE_CONNECT_ERROR).setCause(ioe)
-                  .setDiagnosticMessage(ioe.getMessage());
+              final Result errorResult = Responses
+                  .newResult(ResultCode.CLIENT_SIDE_CONNECT_ERROR)
+                  .setCause(ioe).setDiagnosticMessage(ioe.getMessage());
               throw ErrorResultException.wrap(errorResult);
             }
           }
@@ -259,8 +262,8 @@
 
     this.socketAddress = address;
     this.options = new LDAPOptions(options);
-    this.clientFilter = new LDAPClientFilter(new LDAPReader(this.options
-        .getDecodeOptions()), 0);
+    this.clientFilter = new LDAPClientFilter(new LDAPReader(
+        this.options.getDecodeOptions()), 0);
     this.defaultFilterChain = new DefaultFilterChain();
     this.defaultFilterChain.add(new TransportFilter());
     this.defaultFilterChain.add(clientFilter);
@@ -292,6 +295,32 @@
 
 
 
+  /**
+   * Returns the address of the Directory Server.
+   *
+   * @return The address of the Directory Server.
+   */
+  public SocketAddress getSocketAddress()
+  {
+    return socketAddress;
+  }
+
+
+
+  /**
+   * {@inheritDoc}
+   */
+  public String toString()
+  {
+    final StringBuilder builder = new StringBuilder();
+    builder.append("LDAPConnectionFactory(");
+    builder.append(getSocketAddress().toString());
+    builder.append(')');
+    return builder.toString();
+  }
+
+
+
   private LDAPConnection adaptConnection(final Connection<?> connection)
   {
     // Test shows that its much faster with non block writes but risk
@@ -314,9 +343,9 @@
       t = t.getCause();
     }
 
-    final Result result = Responses.newResult(
-        ResultCode.CLIENT_SIDE_CONNECT_ERROR).setCause(t).setDiagnosticMessage(
-        t.getMessage());
+    final Result result = Responses
+        .newResult(ResultCode.CLIENT_SIDE_CONNECT_ERROR).setCause(t)
+        .setDiagnosticMessage(t.getMessage());
     return ErrorResultException.wrap(result);
   }
 }

--
Gitblit v1.10.0