From ede52c8f25aa2b7815e006cdfd6fe09f0766b548 Mon Sep 17 00:00:00 2001
From: Yannick Lecaillez <yannick.lecaillez@forgerock.com>
Date: Wed, 09 Nov 2016 14:54:10 +0000
Subject: [PATCH] OPENDJ-3179: Migrate LDAP Connection Handler to SDK Grizzly transport

---
 opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/LdapResponseMessageWriter.java |   20 ++++----------------
 1 files changed, 4 insertions(+), 16 deletions(-)

diff --git a/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/LdapResponseMessageWriter.java b/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/LdapResponseMessageWriter.java
index adecbcf..3c8c20b 100644
--- a/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/LdapResponseMessageWriter.java
+++ b/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/LdapResponseMessageWriter.java
@@ -20,7 +20,6 @@
 import org.forgerock.opendj.ldap.spi.LdapMessages.LdapResponseMessage;
 import org.glassfish.grizzly.CompletionHandler;
 import org.glassfish.grizzly.Connection;
-import org.glassfish.grizzly.WriteHandler;
 import org.reactivestreams.Subscriber;
 import org.reactivestreams.Subscription;
 
@@ -44,25 +43,14 @@
             return;
         }
         upstream = s;
-        connection.notifyCanWrite(new WriteHandler() {
-            @Override
-            public void onWritePossible() throws Exception {
-                final Subscription sub = upstream;
-                if (sub != null) {
-                    sub.request(1);
-                }
-            }
-
-            @Override
-            public void onError(final Throwable error) {
-                LdapResponseMessageWriter.this.onError(error);
-            }
-        });
+        // We're requesting two response to allow overlap between async I/O and response computation.
+        // (allows to generate a response while we're waiting for the previous message to be written)
+        upstream.request(2);
     }
 
     @Override
     public void onNext(final LdapResponseMessage message) {
-        connection.write(message).addCompletionHandler(this);
+        connection.write(message, this);
     }
 
     @Override

--
Gitblit v1.10.0