From 939456f71b5f02daab10d7c16615d24d09c89047 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Wed, 24 Sep 2025 09:32:54 +0000
Subject: [PATCH] Make GrizzlyLDAPListener close in a synchronous fasion to prevent test race conditions (#557)

---
 opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/GrizzlyLDAPListener.java |   17 +++++++++--------
 1 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/GrizzlyLDAPListener.java b/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/GrizzlyLDAPListener.java
index 2ebbf43..19e36fe 100644
--- a/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/GrizzlyLDAPListener.java
+++ b/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/GrizzlyLDAPListener.java
@@ -13,6 +13,7 @@
  *
  * Copyright 2010 Sun Microsystems, Inc.
  * Portions copyright 2011-2016 ForgeRock AS.
+ * Portions copyright 2025 3A Systems, LLC.
  */
 package org.forgerock.opendj.grizzly;
 
@@ -25,6 +26,7 @@
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Set;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.forgerock.i18n.LocalizableMessage;
@@ -118,16 +120,15 @@
     @Override
     public void close() {
         if (isClosed.compareAndSet(false, true)) {
-            try {
-                for (TCPNIOConnection serverConnection : serverConnections) {
-                    serverConnection.closeSilently();
+            for (TCPNIOConnection serverConnection : serverConnections) {
+                try {
+                    serverConnection.close().get(5, TimeUnit.SECONDS);
+                } catch (final Exception e) {
+                    // TODO: I18N
+                    logger.warn(LocalizableMessage.raw("Exception occurred while closing listener", e));
                 }
-            } catch (final Exception e) {
-                // TODO: I18N
-                logger.warn(LocalizableMessage.raw("Exception occurred while closing listener", e));
-            } finally {
-                transport.release();
             }
+            transport.release();
         }
     }
 

--
Gitblit v1.10.0