From 7282c7f762540fe097290a2a82b72d23284968e3 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Sat, 13 Oct 2012 08:33:45 +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/TestCaseUtils.java |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/TestCaseUtils.java b/opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/TestCaseUtils.java
index 85bb408..b78acb4 100644
--- a/opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/TestCaseUtils.java
+++ b/opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/TestCaseUtils.java
@@ -31,6 +31,7 @@
 import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.net.ServerSocket;
+import java.net.SocketAddress;
 
 /**
  * This class defines some utility functions which can be used by test cases.
@@ -101,6 +102,24 @@
     }
 
     /**
+     * Finds a free server socket port on the local host.
+     *
+     * @return The free port.
+     */
+    public static SocketAddress findFreeSocketAddress() {
+        try {
+            ServerSocket serverLdapSocket = new ServerSocket();
+            serverLdapSocket.setReuseAddress(true);
+            serverLdapSocket.bind(new InetSocketAddress("127.0.0.1", 0));
+            final SocketAddress address = serverLdapSocket.getLocalSocketAddress();
+            serverLdapSocket.close();
+            return address;
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
      * Returns an internal client connection to the running ldap server.
      *
      * @return The internal client connection.

--
Gitblit v1.10.0