From 662fdae83523ba9a7accd304003c75f18c8a8e4c Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 27 Mar 2013 12:29:50 +0000
Subject: [PATCH] OPENDJ-832 Leverage the work queue for processing requests received on the HTTP connection handler

---
 opendj3/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/ldap/LDAPConnectionFactoryImpl.java |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/opendj3/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/ldap/LDAPConnectionFactoryImpl.java b/opendj3/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/ldap/LDAPConnectionFactoryImpl.java
index 46f965f..706e9b3 100644
--- a/opendj3/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/ldap/LDAPConnectionFactoryImpl.java
+++ b/opendj3/opendj-ldap-sdk/src/main/java/com/forgerock/opendj/ldap/LDAPConnectionFactoryImpl.java
@@ -27,7 +27,7 @@
 
 package com.forgerock.opendj.ldap;
 
-import static org.forgerock.opendj.ldap.ErrorResultException.newErrorResult;
+import static org.forgerock.opendj.ldap.ErrorResultException.*;
 
 import java.io.IOException;
 import java.net.SocketAddress;
@@ -68,16 +68,19 @@
     private final class CompletionHandlerAdapter implements
             CompletionHandler<org.glassfish.grizzly.Connection> {
 
-        private final AsynchronousFutureResult<? super Connection> future;
+        private final AsynchronousFutureResult<Connection, ResultHandler<? super Connection>> future;
 
-        private CompletionHandlerAdapter(final AsynchronousFutureResult<? super Connection> future) {
+        private CompletionHandlerAdapter(
+                final AsynchronousFutureResult<Connection, ResultHandler<? super Connection>> future) {
             this.future = future;
         }
 
+        @Override
         public void cancelled() {
             // Ignore this.
         }
 
+        @Override
         public void completed(final org.glassfish.grizzly.Connection result) {
             // Adapt the connection.
             final LDAPConnection connection = adaptConnection(result);
@@ -105,10 +108,12 @@
                 startTLS.addEnabledProtocol(options.getEnabledProtocols().toArray(
                         new String[options.getEnabledProtocols().size()]));
                 final ResultHandler<ExtendedResult> handler = new ResultHandler<ExtendedResult>() {
+                    @Override
                     public void handleErrorResult(final ErrorResultException error) {
                         onFailure(connection, error);
                     }
 
+                    @Override
                     public void handleResult(final ExtendedResult result) {
                         onSuccess(connection);
                     }
@@ -137,11 +142,13 @@
             }
         }
 
+        @Override
         public void failed(final Throwable throwable) {
             // Adapt and forward.
             future.handleErrorResult(adaptConnectionException(throwable));
         }
 
+        @Override
         public void updated(final org.glassfish.grizzly.Connection result) {
             // Ignore this.
         }
@@ -181,7 +188,7 @@
                 connection.close();
             }
         }
-    };
+    }
 
     private final LDAPClientFilter clientFilter;
     private final FilterChain defaultFilterChain;
@@ -233,8 +240,8 @@
             final ResultHandler<? super Connection> handler) {
         final SocketConnectorHandler connectorHandler =
                 TCPNIOConnectorHandler.builder(transport).processor(defaultFilterChain).build();
-        final AsynchronousFutureResult<Connection> future =
-                new AsynchronousFutureResult<Connection>(handler);
+        final AsynchronousFutureResult<Connection, ResultHandler<? super Connection>> future =
+                new AsynchronousFutureResult<Connection, ResultHandler<? super Connection>>(handler);
         final CompletionHandlerAdapter cha = new CompletionHandlerAdapter(future);
         connectorHandler.connect(socketAddress, cha);
         return future;

--
Gitblit v1.10.0