From 236cc96cf344c06a163b284579b516fdc8521227 Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Mon, 09 Feb 2009 23:11:53 +0000
Subject: [PATCH] Fix for issue 3788 - Modified selector loop to remove all processed keys. - Fixed potential NullPointerException when accepting new connections when in lockdown mode.

---
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
index fa7b7aa..11dcb10 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
@@ -280,12 +280,6 @@
       statTracker.updateConnect();
     }
 
-    connectionID = DirectoryServer.newConnectionAccepted(this);
-    if (connectionID < 0)
-    {
-      disconnect(DisconnectReason.ADMIN_LIMIT_EXCEEDED, true,
-          ERR_LDAP_CONNHANDLER_REJECTED_BY_SERVER.get());
-    }
     cachedBuffers = new ThreadLocal<WriterBuffer>();
     tlsChannel =
         RedirectingByteChannel.getRedirectingByteChannel(clientChannel);
@@ -294,6 +288,13 @@
     this.asn1Reader =
         ASN1.getReader(saslChannel, 4096, connectionHandler
             .getMaxRequestSize());
+
+    connectionID = DirectoryServer.newConnectionAccepted(this);
+    if (connectionID < 0)
+    {
+      disconnect(DisconnectReason.ADMIN_LIMIT_EXCEEDED, true,
+          ERR_LDAP_CONNHANDLER_REJECTED_BY_SERVER.get());
+    }
   }
 
 

--
Gitblit v1.10.0