From 084d46dceda5b81998f27d70b54905e4dc612598 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Tue, 04 Aug 2026 11:52:33 +0000
Subject: [PATCH] Fix CodeQL note-severity alerts: nested classes which never use the enclosing instance (#846)

---
 opendj-doc-maven-plugin/src/main/java/org/forgerock/opendj/maven/doc/GenerateGlobalAcisTableMojo.java           |    2 
 opendj-server-legacy/src/main/java/org/opends/quicksetup/util/FileManager.java                                  |    3 +
 opendj-server-legacy/src/main/java/org/opends/server/extensions/DiskSpaceMonitor.java                           |    5 +-
 opendj-doc-maven-plugin/src/main/java/org/forgerock/opendj/maven/doc/GenerateSchemaDocMojo.java                 |    3 +
 opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/LDAPServerFilter.java                                 |    6 +-
 opendj-dsml-servlet/src/main/java/org/opends/dsml/protocol/DSMLServlet.java                                     |    4 +-
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendStat.java                        |    3 +
 opendj-server-legacy/src/main/java/org/opends/server/replication/server/ReplicationServerDomain.java            |    2 
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java          |    3 +
 opendj-server-legacy/src/main/java/org/opends/server/tools/EncodePassword.java                                  |    3 +
 opendj-server-legacy/src/main/java/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyFactory.java |    3 +
 opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureDS.java                                     |    2 
 opendj-server-legacy/src/main/java/org/opends/server/extensions/EntryCacheCommon.java                           |    5 +-
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/WindowsServicePanel.java                 |    3 +
 opendj-server-legacy/src/main/java/org/opends/server/backends/BackupBackend.java                                |    3 +
 opendj-server-legacy/src/main/java/org/opends/server/backends/pdb/PDBStorage.java                               |    3 +
 opendj-server-legacy/src/main/java/org/opends/server/protocols/http/rest2ldap/AdminEndpoint.java                |    2 
 opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/JEStorage.java                                |    5 +-
 opendj-server-legacy/src/main/java/org/forgerock/opendj/reactive/LDAPClientConnection2.java                     |    2 
 opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java                                           |    3 +
 20 files changed, 38 insertions(+), 27 deletions(-)

diff --git a/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java b/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java
index 720dc50..b80f5d4 100644
--- a/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java
+++ b/opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java
@@ -13,6 +13,7 @@
  *
  * Copyright 2006-2010 Sun Microsystems, Inc.
  * Portions copyright 2012-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package com.forgerock.opendj.cli;
 
@@ -540,7 +541,7 @@
      * A supplement to the description for all subcommands of this tool,
      * intended for use in generated reference documentation.
      */
-    private class DocSubcommandDescriptionSupplement implements DocDescriptionSupplement {
+    private static class DocSubcommandDescriptionSupplement implements DocDescriptionSupplement {
         /** A supplement to the description intended for use in generated reference documentation. */
         private LocalizableMessage docDescriptionSupplement;
 
diff --git a/opendj-doc-maven-plugin/src/main/java/org/forgerock/opendj/maven/doc/GenerateGlobalAcisTableMojo.java b/opendj-doc-maven-plugin/src/main/java/org/forgerock/opendj/maven/doc/GenerateGlobalAcisTableMojo.java
index ac932de..baba1e1 100644
--- a/opendj-doc-maven-plugin/src/main/java/org/forgerock/opendj/maven/doc/GenerateGlobalAcisTableMojo.java
+++ b/opendj-doc-maven-plugin/src/main/java/org/forgerock/opendj/maven/doc/GenerateGlobalAcisTableMojo.java
@@ -61,7 +61,7 @@
     private File outputDirectory;
 
     /** Holds documentation for an ACI. */
-    private class Aci {
+    private static class Aci {
         String name;
         String description;
         String definition;
diff --git a/opendj-doc-maven-plugin/src/main/java/org/forgerock/opendj/maven/doc/GenerateSchemaDocMojo.java b/opendj-doc-maven-plugin/src/main/java/org/forgerock/opendj/maven/doc/GenerateSchemaDocMojo.java
index 5523d6e..c8b6c7e 100644
--- a/opendj-doc-maven-plugin/src/main/java/org/forgerock/opendj/maven/doc/GenerateSchemaDocMojo.java
+++ b/opendj-doc-maven-plugin/src/main/java/org/forgerock/opendj/maven/doc/GenerateSchemaDocMojo.java
@@ -12,6 +12,7 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2015-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package org.forgerock.opendj.maven.doc;
 
@@ -87,7 +88,7 @@
             CoreSchemaSupportedLocales.getJvmSupportedLocaleNamesToOids();
 
     /** Container for documentation regarding a locale. */
-    private class LocaleDoc {
+    private static class LocaleDoc {
         String tag;
         String language;
         String oid;
diff --git a/opendj-dsml-servlet/src/main/java/org/opends/dsml/protocol/DSMLServlet.java b/opendj-dsml-servlet/src/main/java/org/opends/dsml/protocol/DSMLServlet.java
index fed9e8f..74ea5da 100644
--- a/opendj-dsml-servlet/src/main/java/org/opends/dsml/protocol/DSMLServlet.java
+++ b/opendj-dsml-servlet/src/main/java/org/opends/dsml/protocol/DSMLServlet.java
@@ -1112,7 +1112,7 @@
    * This class is used when an XML request is malformed to retrieve the
    * requestID value using an event XML parser.
    */
-  private class DSMLContentHandler extends DefaultHandler {
+  private static class DSMLContentHandler extends DefaultHandler {
     private String requestID;
     /**
      * This function fetches the requestID value of the batchRequest xml
@@ -1132,7 +1132,7 @@
    * This is defensive - we prevent entity resolving by configuration, but
    * just in case, we ensure that nothing resolves.
    */
-  private class SafeEntityResolver implements EntityResolver
+  private static class SafeEntityResolver implements EntityResolver
   {
     @Override
     public InputSource resolveEntity(String publicId, String systemId)
diff --git a/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/LDAPServerFilter.java b/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/LDAPServerFilter.java
index d557f6c..a1a5cc5 100644
--- a/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/LDAPServerFilter.java
+++ b/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/LDAPServerFilter.java
@@ -13,7 +13,7 @@
  *
  * Copyright 2010 Sun Microsystems, Inc.
  * Portions Copyright 2012-2016 ForgeRock AS.
- * Portions Copyright 2017-2024 3A Systems, LLC.
+ * Portions Copyright 2017-2026 3A Systems, LLC.
  */
 package org.forgerock.opendj.grizzly;
 
@@ -242,9 +242,9 @@
         };
     }
 
-    final class ClientConnectionImpl extends BaseFilter implements LDAPClientContext {
+    static final class ClientConnectionImpl extends BaseFilter implements LDAPClientContext {
 
-        final class GrizzlyBackpressureSubscription implements Subscription {
+        static final class GrizzlyBackpressureSubscription implements Subscription {
             private final AtomicLong pendingRequests = new AtomicLong();
             private final Subscriber<? super LdapRequestEnvelope> subscriber;
             private FilterChainContext suspendedCtx;
diff --git a/opendj-server-legacy/src/main/java/org/forgerock/opendj/reactive/LDAPClientConnection2.java b/opendj-server-legacy/src/main/java/org/forgerock/opendj/reactive/LDAPClientConnection2.java
index 7cf99df..53f799f 100644
--- a/opendj-server-legacy/src/main/java/org/forgerock/opendj/reactive/LDAPClientConnection2.java
+++ b/opendj-server-legacy/src/main/java/org/forgerock/opendj/reactive/LDAPClientConnection2.java
@@ -1684,7 +1684,7 @@
     }
 
     /** Upstream -> BlockingBackpressureSubscription -> Downstream. */
-    private final class BlockingBackpressureSubscription implements Subscription, Processor<Response, Response> {
+    private static final class BlockingBackpressureSubscription implements Subscription, Processor<Response, Response> {
         private final AtomicLong pendingRequests = new AtomicLong();
         private final AtomicInteger missedDrain = new AtomicInteger();
         private final BlockingQueue<Response> queue = new LinkedBlockingQueue<>(32);
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java
index b9a0e7f..1bb361b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.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.guitools.controlpanel.ui;
 
@@ -1561,7 +1562,7 @@
    * left. The class simply handles this particular case to not to have that
    * inset for the 'All Base DNs' item.
    */
-  private class CustomComboBoxCellRenderer extends CustomListCellRenderer
+  private static class CustomComboBoxCellRenderer extends CustomListCellRenderer
   {
     private final LocalizableMessage ALL_BASE_DNS_STRING = INFO_CTRL_PANEL_ALL_BASE_DNS.get();
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/WindowsServicePanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/WindowsServicePanel.java
index 0386a4d..f6cf128 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/WindowsServicePanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/WindowsServicePanel.java
@@ -13,6 +13,7 @@
  *
  * Copyright 2008-2009 Sun Microsystems, Inc.
  * Portions Copyright 2014-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 
 package org.opends.guitools.controlpanel.ui;
@@ -249,7 +250,7 @@
   }
 
   /** The task in charge of updating the windows service configuration. */
-  private class WindowsServiceTask extends Task
+  private static class WindowsServiceTask extends Task
   {
     private Set<String> backendSet;
     private boolean enableService;
diff --git a/opendj-server-legacy/src/main/java/org/opends/quicksetup/util/FileManager.java b/opendj-server-legacy/src/main/java/org/opends/quicksetup/util/FileManager.java
index e1e6361..41db177 100644
--- a/opendj-server-legacy/src/main/java/org/opends/quicksetup/util/FileManager.java
+++ b/opendj-server-legacy/src/main/java/org/opends/quicksetup/util/FileManager.java
@@ -13,6 +13,7 @@
  *
  * Copyright 2006-2008 Sun Microsystems, Inc.
  * Portions Copyright 2012-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package org.opends.quicksetup.util;
 
@@ -354,7 +355,7 @@
   }
 
   /** A file operation. */
-  private abstract class FileOperation {
+  private abstract static class FileOperation {
     private File objectFile;
 
     /**
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/BackupBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/BackupBackend.java
index ab8c8ce..07074ba 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/BackupBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/BackupBackend.java
@@ -13,6 +13,7 @@
  *
  * Copyright 2006-2008 Sun Microsystems, Inc.
  * Portions Copyright 2014-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package org.opends.server.backends;
 
@@ -110,7 +111,7 @@
    * To avoid parsing and reparsing the contents of backup.info files, we
    * cache the BackupDirectory for each directory using this class.
    */
-  private class CachedBackupDirectory
+  private static class CachedBackupDirectory
   {
     /** The path to the 'bak' directory. */
     private final String directoryPath;
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/JEStorage.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/JEStorage.java
index db13951..cc9b870 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/JEStorage.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/JEStorage.java
@@ -12,6 +12,7 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2015-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package org.opends.server.backends.jeb;
 
@@ -522,7 +523,7 @@
   }
 
   /** JE read-only implementation of {@link WriteableTransaction} interface. */
-  private final class ReadOnlyTransactionImpl implements WriteableTransaction
+  private static final class ReadOnlyTransactionImpl implements WriteableTransaction
   {
     private final WriteableTransactionImpl delegate;
 
@@ -585,7 +586,7 @@
   }
 
   /** No operation storage transaction faking database files are present and empty. */
-  private final class ReadOnlyEmptyTransactionImpl implements WriteableTransaction
+  private static final class ReadOnlyEmptyTransactionImpl implements WriteableTransaction
   {
     @Override
     public void openTree(TreeName name, boolean createOnDemand)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pdb/PDBStorage.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pdb/PDBStorage.java
index 85f9eca..a4e6f97 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pdb/PDBStorage.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pdb/PDBStorage.java
@@ -12,6 +12,7 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2014-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package org.opends.server.backends.pdb;
 
@@ -758,7 +759,7 @@
   }
 
   /** No operation storage faking database files are present and empty. */
-  private final class ReadOnlyEmptyStorageImpl implements StorageImpl
+  private static final class ReadOnlyEmptyStorageImpl implements StorageImpl
   {
     @Override
     public void close() throws IOException
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendStat.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendStat.java
index 87609cb..694edba 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendStat.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendStat.java
@@ -12,6 +12,7 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Portions Copyright 2015-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package org.opends.server.backends.pluggable;
 
@@ -202,7 +203,7 @@
   }
 
   /** Statistics collector. */
-  private class TreeStats
+  private static class TreeStats
   {
     private final long count;
     private final long totalKeySize;
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/DiskSpaceMonitor.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/DiskSpaceMonitor.java
index 7801e4e..effc0e5 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/DiskSpaceMonitor.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/DiskSpaceMonitor.java
@@ -13,6 +13,7 @@
  *
  * Copyright 2010 Sun Microsystems, Inc.
  * Portions Copyright 2014-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package org.opends.server.extensions;
 
@@ -62,7 +63,7 @@
     ServerShutdownListener
 {
   /** Helper class for each requestor for use with cn=monitor reporting and users of a specific mountpoint. */
-  private class MonitoredDirectory extends MonitorProvider<MonitorProviderCfg>
+  private static class MonitoredDirectory extends MonitorProvider<MonitorProviderCfg>
   {
     private volatile File directory;
     private volatile long lowThreshold;
@@ -144,7 +145,7 @@
    * Helper class for building temporary list of handlers to notify on threshold hits.
    * One object per directory per state will hold all the handlers matching directory and state.
    */
-  private class HandlerNotifier {
+  private static class HandlerNotifier {
     private File directory;
     private int state;
     /** Printable list of handlers names, for reporting backend names in alert messages. */
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/EntryCacheCommon.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/EntryCacheCommon.java
index b353c6b..57ad3c1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/EntryCacheCommon.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/EntryCacheCommon.java
@@ -60,7 +60,7 @@
    * The error handler simplifies the code of initializeEntryCache(),
    * isConfigurationChangeAcceptable() and applyConfigurationChanges() methods.
    */
-  public class ConfigErrorHandler
+  public static class ConfigErrorHandler
   {
     /** Configuration phase. */
     private EntryCacheCommon.ConfigPhase _configPhase;
@@ -324,8 +324,7 @@
       List<LocalizableMessage> errorMessages
       )
   {
-    EntryCacheCommon ec = new EntryCacheCommon();
-    return ec.new ConfigErrorHandler(
+    return new ConfigErrorHandler(
         configPhase, unacceptableReasons, errorMessages);
   }
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyFactory.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyFactory.java
index 1aded7c..7a72a52 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyFactory.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyFactory.java
@@ -12,6 +12,7 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Portions Copyright 2011-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package org.opends.server.extensions;
 
@@ -269,7 +270,7 @@
      * A connection factory which caches its online/offline state in order to
      * avoid unnecessary connection attempts when it is known to be offline.
      */
-    private final class MonitoredConnectionFactory implements ConnectionFactory
+    private static final class MonitoredConnectionFactory implements ConnectionFactory
     {
       private final ConnectionFactory factory;
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/rest2ldap/AdminEndpoint.java b/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/rest2ldap/AdminEndpoint.java
index 3aa12f1..3d1f05f 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/rest2ldap/AdminEndpoint.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/rest2ldap/AdminEndpoint.java
@@ -131,7 +131,7 @@
   }
 
   /** Specialized {@link HttpApplication} using internal connections to this local LDAP server. */
-  private final class AdminHttpApplication implements HttpApplication
+  private static final class AdminHttpApplication implements HttpApplication
   {
     private LDAPProfile ldapProfile = LDAPProfile.getInstance();
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/server/ReplicationServerDomain.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/server/ReplicationServerDomain.java
index 6d0a2fd..d8d24ce 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/server/ReplicationServerDomain.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/server/ReplicationServerDomain.java
@@ -571,7 +571,7 @@
    * - processSafeDataUpdateMsg
    * This is a facility to pack many interesting returned object.
    */
-  private class PreparedAssuredInfo
+  private static class PreparedAssuredInfo
   {
       /**
        * The list of servers identified as servers we are interested in
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureDS.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureDS.java
index 7a9b272..771574a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureDS.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureDS.java
@@ -109,7 +109,7 @@
 
   /** Private exception class to handle error message printing. */
   @SuppressWarnings("serial")
-  private class ConfigureDSException extends Exception
+  private static class ConfigureDSException extends Exception
   {
     private final int returnedErrorCode;
     private final LocalizableMessage errorMessage;
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/EncodePassword.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/EncodePassword.java
index 8132dba..c8b4ec9 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/EncodePassword.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/EncodePassword.java
@@ -13,6 +13,7 @@
  *
  * Copyright 2006-2010 Sun Microsystems, Inc.
  * Portions Copyright 2011-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
  */
 package org.opends.server.tools;
 
@@ -668,7 +669,7 @@
   }
 
   /** Thread that mask user input. */
-  private class ErasingThread extends Thread
+  private static class ErasingThread extends Thread
   {
     private boolean stop;
     private String prompt;

--
Gitblit v1.10.0