From 9e4f2aba042df34b753b119b91025948c0d698db Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Sat, 13 Oct 2012 09:16:20 +0000
Subject: [PATCH] OPENDJ-612: SDK: Race conditions installing client/server filter chains during connect/bind/accept

---
 opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/LDAPServer.java |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/LDAPServer.java b/opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/LDAPServer.java
index c24add4..c2f9743 100644
--- a/opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/LDAPServer.java
+++ b/opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/LDAPServer.java
@@ -30,6 +30,7 @@
 import static com.forgerock.opendj.ldap.LDAPConstants.TYPE_AUTHENTICATION_SASL;
 
 import java.io.IOException;
+import java.net.SocketAddress;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -615,13 +616,14 @@
      * @param port
      * @exception IOException
      */
-    public synchronized void start(final int port) throws Exception {
+    public synchronized void start() throws Exception {
         if (isRunning) {
             return;
         }
         sslContext = new SSLContextBuilder().getSSLContext();
         listener =
-                new LDAPListener(port, getInstance(), new LDAPListenerOptions().setBacklog(4096));
+                new LDAPListener(TestCaseUtils.findFreeSocketAddress(), getInstance(),
+                        new LDAPListenerOptions().setBacklog(4096));
         isRunning = true;
     }
 
@@ -635,4 +637,16 @@
         listener.close();
         isRunning = false;
     }
+
+    /**
+     * Returns the socket address of the server.
+     *
+     * @return The socket address of the server.
+     */
+    public synchronized SocketAddress getSocketAddress() {
+        if (!isRunning) {
+            throw new IllegalStateException("Server is not running");
+        }
+        return listener.getSocketAddress();
+    }
 }

--
Gitblit v1.10.0