From 0885d16ac22a0ecd2267bf3c8818a3a8a5a9dadb Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Fri, 31 Jul 2026 07:48:54 +0000
Subject: [PATCH] Fix CodeQL warning-severity alerts: missed wakeups, resource leaks, escaping threads (#790)

---
 opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureWindowsService.java |   68 ++++++++++++++++++----------------
 1 files changed, 36 insertions(+), 32 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureWindowsService.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureWindowsService.java
index e59ccdf..c4fe83f 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureWindowsService.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureWindowsService.java
@@ -13,6 +13,7 @@
  *
  * Copyright 2008-2010 Sun Microsystems, Inc.
  * Portions Copyright 2011-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package org.opends.server.tools;
 
@@ -270,25 +271,27 @@
     {
       String serviceName = null;
       Process p = Runtime.getRuntime().exec(cmd);
-      BufferedReader stdout = new BufferedReader(new InputStreamReader(p.getInputStream()));
-      boolean processDone = false;
-      String s;
-      while (!processDone)
+      try (BufferedReader stdout = new BufferedReader(new InputStreamReader(p.getInputStream())))
       {
-        try
+        boolean processDone = false;
+        String s;
+        while (!processDone)
         {
-          p.exitValue();
-          processDone = true;
-        }
-        catch (Throwable t)
-        {
-        }
-        while ((s = stdout.readLine()) != null)
-        {
-          serviceName = s;
-          if (serviceName.trim().length() == 0)
+          try
           {
-            serviceName = null;
+            p.exitValue();
+            processDone = true;
+          }
+          catch (Throwable t)
+          {
+          }
+          while ((s = stdout.readLine()) != null)
+          {
+            serviceName = s;
+            if (serviceName.trim().length() == 0)
+            {
+              serviceName = null;
+            }
           }
         }
       }
@@ -608,25 +611,26 @@
     {
       int resultCode = -1;
       Process process = new ProcessBuilder(cmd).start();
-      BufferedReader stdout = new BufferedReader(new InputStreamReader(process.getInputStream()));
-
-      boolean processDone = false;
-      String s;
-      while (!processDone)
+      try (BufferedReader stdout = new BufferedReader(new InputStreamReader(process.getInputStream())))
       {
-        try
+        boolean processDone = false;
+        String s;
+        while (!processDone)
         {
-          resultCode = process.exitValue();
-          processDone = true;
-        }
-        catch (Throwable t)
-        {
-        }
-        while ((s = stdout.readLine()) != null)
-        {
-          if (s.trim().length() != 0)
+          try
           {
-            serviceName = s;
+            resultCode = process.exitValue();
+            processDone = true;
+          }
+          catch (Throwable t)
+          {
+          }
+          while ((s = stdout.readLine()) != null)
+          {
+            if (s.trim().length() != 0)
+            {
+              serviceName = s;
+            }
           }
         }
       }

--
Gitblit v1.10.0