From c34642325775e6b3054af2ca456bbfe5c3ff1b54 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Wed, 05 Aug 2026 08:33:48 +0000
Subject: [PATCH] Fix CodeQL note-severity alerts: the leftovers of the already-fixed rules (#850)
---
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/NewSchemaElementsTask.java | 2
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java | 4 +
opendj-server-legacy/src/main/java/org/opends/server/tools/InstallDS.java | 2
opendj-cli/src/main/java/com/forgerock/opendj/cli/ConsoleApplication.java | 3 +
opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/Installer.java | 2
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/DeleteIndexTask.java | 2 -
opendj-server-legacy/src/main/java/org/opends/quicksetup/TempLogFile.java | 2
opendj-server/src/main/java/org/forgerock/opendj/server/core/ProductInformation.java | 28 ++++++++++++--
opendj-core/src/main/java/com/forgerock/opendj/ldap/extensions/EndTransactionExtendedRequest.java | 17 +++++---
opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/ui/RemoteReplicationPortsPanel.java | 2
opendj-core/src/main/java/org/forgerock/opendj/ldif/LDIFChangeRecordReader.java | 3 +
11 files changed, 46 insertions(+), 21 deletions(-)
diff --git a/opendj-cli/src/main/java/com/forgerock/opendj/cli/ConsoleApplication.java b/opendj-cli/src/main/java/com/forgerock/opendj/cli/ConsoleApplication.java
index 0d5cea5..089ebb8 100644
--- a/opendj-cli/src/main/java/com/forgerock/opendj/cli/ConsoleApplication.java
+++ b/opendj-cli/src/main/java/com/forgerock/opendj/cli/ConsoleApplication.java
@@ -14,6 +14,7 @@
* Copyright 2008-2009 Sun Microsystems, Inc.
* Portions copyright 2011-2016 ForgeRock AS.
* Portions copyright 2011 Nemanja Lukić
+ * Portions Copyright 2026 3A Systems, LLC.
*/
package com.forgerock.opendj.cli;
@@ -474,7 +475,7 @@
println();
}
- if ("".equals(response)) {
+ if (response.isEmpty()) {
if (defaultValue != null) {
return defaultValue;
}
diff --git a/opendj-core/src/main/java/com/forgerock/opendj/ldap/extensions/EndTransactionExtendedRequest.java b/opendj-core/src/main/java/com/forgerock/opendj/ldap/extensions/EndTransactionExtendedRequest.java
index 5b898a1..8a663f8 100644
--- a/opendj-core/src/main/java/com/forgerock/opendj/ldap/extensions/EndTransactionExtendedRequest.java
+++ b/opendj-core/src/main/java/com/forgerock/opendj/ldap/extensions/EndTransactionExtendedRequest.java
@@ -12,6 +12,7 @@
* information: "Portions Copyright [year] [name of copyright owner]".
*
* Copyright 2025 3A Systems, LLC
+ * Portions Copyright 2026 3A Systems, LLC.
*/
package com.forgerock.opendj.ldap.extensions;
@@ -28,8 +29,6 @@
import org.forgerock.util.Reject;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
import static com.forgerock.opendj.ldap.CoreMessages.ERR_EXTOP_PASSMOD_CANNOT_DECODE_REQUEST;
import static com.forgerock.opendj.util.StaticUtils.getExceptionMessage;
@@ -153,15 +152,19 @@
reader.readStartSequence();
while (reader.hasNextElement() && reader.peekType() == ASN1.UNIVERSAL_SEQUENCE_TYPE) {
reader.readStartSequence();
- final long messageId = reader.readInteger();
- final List<Control> controls = new ArrayList<>();
+ /*
+ * TODO: report these updatesControls through
+ * EndTransactionExtendedResult.success(messageID, responses). Rebuilding a Control
+ * from the wire is not possible yet: getValue() writes each control as its value
+ * alone, without its OID and criticality, so both sides have to be completed
+ * together. Until then the entries are read to consume them and dropped.
+ */
+ reader.readInteger();
reader.readStartSequence();
while (reader.hasNextElement() && reader.peekType() == ASN1.UNIVERSAL_OCTET_STRING_TYPE) {
- final ByteString controlEncoded = reader.readOctetString();
- //TODO decode Control
+ reader.readOctetString();
}
reader.readEndSequence();
- //newResult.success(messageId, controls.toArray(new Control[]{}));
reader.readEndSequence();
}
reader.readEndSequence();
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldif/LDIFChangeRecordReader.java b/opendj-core/src/main/java/org/forgerock/opendj/ldif/LDIFChangeRecordReader.java
index 65d3b9f..fedcc1d 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/ldif/LDIFChangeRecordReader.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldif/LDIFChangeRecordReader.java
@@ -15,6 +15,7 @@
* Portions copyright 2011-2016 ForgeRock AS.
* Portions copyright 2016 Matthew Stevenson
* Portions Copyrighted 2026 3A Systems, LLC.
+ * Portions Copyright 2026 3A Systems, LLC.
*/
package org.forgerock.opendj.ldif;
@@ -721,7 +722,7 @@
// Parse the newsuperior if present.
if (record.iterator.hasNext()) {
ldifLine = readLDIFRecordKeyValuePair(record, pair, true);
- if (pair.key == null || !"newsuperior".equals(toLowerCase(pair.key)) || "".equals(pair.value)) {
+ if (pair.key == null || !"newsuperior".equals(toLowerCase(pair.key)) || pair.value.isEmpty()) {
throw DecodeException.error(
ERR_LDIF_MALFORMED_NEW_SUPERIOR.get(record.lineNumber, entryDN, ldifLine));
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/DeleteIndexTask.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/DeleteIndexTask.java
index 69d046c..c051ff1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/DeleteIndexTask.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/DeleteIndexTask.java
@@ -303,8 +303,6 @@
* Returns the path of the command line to be used to delete the specified
* index.
*
- * @param index
- * the index to be deleted.
* @return the path of the command line to be used to delete the specified
* index.
*/
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/NewSchemaElementsTask.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/NewSchemaElementsTask.java
index a5a50c3..c97c76a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/NewSchemaElementsTask.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/NewSchemaElementsTask.java
@@ -255,7 +255,7 @@
List<AttributeType> attrs = schemaElementsToAttributeTypes(get(mapAttrs, fileName));
List<ObjectClass> ocs = schemaElementsToObjectClasses(get(mapClasses, fileName));
- if ("".equals(fileName))
+ if (fileName.isEmpty())
{
fileName = null;
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/quicksetup/TempLogFile.java b/opendj-server-legacy/src/main/java/org/opends/quicksetup/TempLogFile.java
index cd41826..ccb1c9e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/quicksetup/TempLogFile.java
+++ b/opendj-server-legacy/src/main/java/org/opends/quicksetup/TempLogFile.java
@@ -85,7 +85,7 @@
}
ErrorLogPublisher startupErrorLogPublisher = TextErrorLogPublisher.getServerStartupTextErrorPublisher(writer);
ErrorLogger.getInstance().addLogPublisher(startupErrorLogPublisher);
- DebugLogPublisher startupDebugLogPublisher = DebugLogger.getInstance().addPublisherIfRequired(writer);
+ DebugLogger.getInstance().addPublisherIfRequired(writer);
localizedLogger.info(LocalizableMessage.raw("QuickSetup application launched " + DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG).format(new Date()), null));
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/Installer.java b/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/Installer.java
index 70deb66..661af28 100644
--- a/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/Installer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/Installer.java
@@ -3364,7 +3364,7 @@
if (errorMsgs.isEmpty())
{
AuthenticationData auth = new AuthenticationData();
- auth.setHostPort(new HostPort("".equals(host) ? null : host, port != null ? port : 0));
+ auth.setHostPort(new HostPort(host.isEmpty() ? null : host, port != null ? port : 0));
auth.setDn(dn);
auth.setPwd(pwd);
auth.setUseSecureConnection(true);
diff --git a/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/ui/RemoteReplicationPortsPanel.java b/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/ui/RemoteReplicationPortsPanel.java
index 3f122a1..75cfaec 100644
--- a/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/ui/RemoteReplicationPortsPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/ui/RemoteReplicationPortsPanel.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.quicksetup.installer.ui;
@@ -111,7 +112,6 @@
{
for (Map.Entry<String, JLabel> entry : hmLabels.entrySet())
{
- String id = entry.getKey();
UIFactory.setTextStyle(entry.getValue(),
UIFactory.TextStyle.SECONDARY_FIELD_VALID);
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
index 645127b..9adafb7 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
@@ -14,6 +14,7 @@
* Portions Copyright 2014 The Apache Software Foundation
* Copyright 2015-2016 ForgeRock AS.
* Portions Copyright 2023-2026 3A Systems, LLC
+ * Portions Copyright 2026 3A Systems, LLC.
*/
package org.opends.server.backends.pluggable;
@@ -3123,7 +3124,8 @@
{
for (int i = 0; i < nbBuffer; i++)
{
- pool.offer(new MemoryBuffer(allocateDirect
+ // The queue is created with room for exactly nbBuffer elements, so add() cannot refuse.
+ pool.add(new MemoryBuffer(allocateDirect
? ByteBuffer.allocateDirect(bufferSize)
: ByteBuffer.allocate(bufferSize)));
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/InstallDS.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/InstallDS.java
index 23619e6..ee1de64 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/InstallDS.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/InstallDS.java
@@ -2278,7 +2278,7 @@
s = "";
logger.warn(LocalizableMessage.raw("Error reading input: "+ce, ce));
}
- if ("".equals(s))
+ if (s.isEmpty())
{
if (defaultValue == null)
{
diff --git a/opendj-server/src/main/java/org/forgerock/opendj/server/core/ProductInformation.java b/opendj-server/src/main/java/org/forgerock/opendj/server/core/ProductInformation.java
index 0c81ec7..82ca627 100644
--- a/opendj-server/src/main/java/org/forgerock/opendj/server/core/ProductInformation.java
+++ b/opendj-server/src/main/java/org/forgerock/opendj/server/core/ProductInformation.java
@@ -266,7 +266,7 @@
* @return The build number for the Directory Server.
*/
public int versionBuildNumber() {
- return Integer.valueOf(properties.getProperty("version.build"));
+ return intProperty("version.build");
}
/**
@@ -295,7 +295,7 @@
* @return The major version number for the Directory Server.
*/
public int versionMajorNumber() {
- return Integer.valueOf(properties.getProperty("version.major"));
+ return intProperty("version.major");
}
/**
@@ -304,7 +304,7 @@
* @return The minor version number for the Directory Server.
*/
public int versionMinorNumber() {
- return Integer.valueOf(properties.getProperty("version.minor"));
+ return intProperty("version.minor");
}
/**
@@ -313,7 +313,7 @@
* @return The point version number for the Directory Server.
*/
public int versionPointNumber() {
- return Integer.valueOf(properties.getProperty("version.point"));
+ return intProperty("version.point");
}
/**
@@ -344,4 +344,24 @@
public String versionRevision() {
return properties.getProperty("scm.revision");
}
+
+ /**
+ * Returns the value of a numeric property of the product information.
+ *
+ * @param key
+ * The name of the property to read.
+ * @return The value of the property.
+ * @throws MissingResourceException
+ * If the property is absent or is not a number, which means the bundled product
+ * information is not the one this class was built against.
+ */
+ private int intProperty(final String key) {
+ final String value = properties.getProperty(key);
+ try {
+ return Integer.parseInt(value);
+ } catch (final NumberFormatException e) {
+ throw new MissingResourceException("Product information holds '" + value + "' for " + key
+ + ", which is not a number", ProductInformation.class.getName(), key);
+ }
+ }
}
--
Gitblit v1.10.0