From 4c7057e45ba8a2f3bc1f0b02b3edf14886fd1956 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Tue, 04 Aug 2026 08:31:56 +0000
Subject: [PATCH] Fix CodeQL note-severity alerts: uncaught NumberFormatException in the tools, the GUI and SNMP (#829)
---
opendj-server-legacy/src/snmp/src/org/opends/server/snmp/DsApplIfOpsEntryImpl.java | 156 ++++++++++++++-------------------------------------
1 files changed, 44 insertions(+), 112 deletions(-)
diff --git a/opendj-server-legacy/src/snmp/src/org/opends/server/snmp/DsApplIfOpsEntryImpl.java b/opendj-server-legacy/src/snmp/src/org/opends/server/snmp/DsApplIfOpsEntryImpl.java
index e211354..07b4e56 100644
--- a/opendj-server-legacy/src/snmp/src/org/opends/server/snmp/DsApplIfOpsEntryImpl.java
+++ b/opendj-server-legacy/src/snmp/src/org/opends/server/snmp/DsApplIfOpsEntryImpl.java
@@ -88,8 +88,14 @@
*/
@Override
public String getDsApplIfProtocol() {
- String portNumber = (String)this.monitor.getAttribute
- (this.connectionHandlerName, "ds-connectionhandler-listener");
+ Object listener = this.monitor.getAttribute(
+ this.connectionHandlerName, "ds-connectionhandler-listener");
+ if (listener instanceof Object[]) {
+ // A connection handler with several listen addresses reports them as an array.
+ Object[] listeners = (Object[]) listener;
+ listener = listeners.length > 0 ? listeners[0] : null;
+ }
+ String portNumber = listener != null ? String.valueOf(listener) : null;
if (portNumber==null) {
return this.DsApplIfProtocol;
}
@@ -103,22 +109,38 @@
}
/**
+ * Returns the value of the provided connection handler statistic as a
+ * counter, or zero if the statistic is not available or does not hold a
+ * number.
+ *
+ * @param statisticName the name of the connection handler statistic
+ * @return the counter value of the statistic
+ */
+ private Long getCounter32Statistic(String statisticName) {
+ if (stats == null) {
+ stats = this.monitor.getConnectionHandlerStatistics(
+ connectionHandlerName);
+ }
+ if (stats == null) {
+ return 0L;
+ }
+ try {
+ long value = Long.parseLong(
+ String.valueOf(this.monitor.getAttribute(stats, statisticName)));
+ return SNMPMonitor.counter32Value(value);
+ } catch (NumberFormatException e) {
+ // The statistic is not available or is not a number.
+ return 0L;
+ }
+ }
+
+ /**
* {@inheritDoc}
* @return DsApplIfSearchOps
*/
@Override
public Long getDsApplIfSearchOps() {
- if (stats == null) {
- stats = this.monitor.getConnectionHandlerStatistics(
- connectionHandlerName);
- }
- if (stats != null) {
- long value = Long.parseLong((String) this.monitor.getAttribute(stats,
- "searchRequests"));
- return SNMPMonitor.counter32Value(value);
- } else {
- return 0L;
- }
+ return getCounter32Statistic("searchRequests");
}
/**
@@ -127,17 +149,7 @@
*/
@Override
public Long getDsApplIfOneLevelSearchOps() {
- if (stats == null) {
- stats = this.monitor.getConnectionHandlerStatistics(
- connectionHandlerName);
- }
- if (stats != null) {
- long value = Long.parseLong((String) this.monitor.getAttribute(stats,
- "searchOneRequests"));
- return SNMPMonitor.counter32Value(value);
- } else {
- return 0L;
- }
+ return getCounter32Statistic("searchOneRequests");
}
/**
@@ -146,17 +158,7 @@
*/
@Override
public Long getDsApplIfWholeSubtreeSearchOps() {
- if (stats == null) {
- stats = this.monitor.getConnectionHandlerStatistics(
- connectionHandlerName);
- }
- if (stats != null) {
- long value = Long.parseLong((String) this.monitor.getAttribute(stats,
- "searchSubRequests"));
- return SNMPMonitor.counter32Value(value);
- } else {
- return 0L;
- }
+ return getCounter32Statistic("searchSubRequests");
}
/**
@@ -165,17 +167,7 @@
*/
@Override
public Long getDsApplIfModifyRDNOps() {
- if (stats == null) {
- stats = this.monitor.getConnectionHandlerStatistics(
- connectionHandlerName);
- }
- if (stats != null) {
- long value = Long.parseLong((String) this.monitor.getAttribute(
- stats, "modifyDNRequests"));
- return SNMPMonitor.counter32Value(value);
- } else {
- return 0L;
- }
+ return getCounter32Statistic("modifyDNRequests");
}
/**
@@ -184,17 +176,7 @@
*/
@Override
public Long getDsApplIfModifyEntryOps() {
- if (stats == null) {
- stats = this.monitor.getConnectionHandlerStatistics(
- connectionHandlerName);
- }
- if (stats != null) {
- long value = Long.parseLong((String) this.monitor.getAttribute(
- stats, "modifyRequests"));
- return SNMPMonitor.counter32Value(value);
- } else {
- return 0L;
- }
+ return getCounter32Statistic("modifyRequests");
}
/**
@@ -203,17 +185,7 @@
*/
@Override
public Long getDsApplIfRemoveEntryOps() {
- if (stats == null) {
- stats = this.monitor.getConnectionHandlerStatistics(
- connectionHandlerName);
- }
- if (stats != null) {
- long value = Long.parseLong((String) this.monitor.getAttribute(
- stats, "deleteRequests"));
- return SNMPMonitor.counter32Value(value);
- } else {
- return 0L;
- }
+ return getCounter32Statistic("deleteRequests");
}
/**
@@ -222,17 +194,7 @@
*/
@Override
public Long getDsApplIfAddEntryOps() {
- if (stats == null) {
- stats = this.monitor.getConnectionHandlerStatistics(
- connectionHandlerName);
- }
- if (stats != null) {
- long value = Long.parseLong((String) this.monitor.getAttribute(
- stats, "addRequests"));
- return SNMPMonitor.counter32Value(value);
- } else {
- return 0L;
- }
+ return getCounter32Statistic("addRequests");
}
/**
@@ -241,17 +203,7 @@
*/
@Override
public Long getDsApplIfCompareOps() {
- if (stats == null) {
- stats = this.monitor.getConnectionHandlerStatistics(
- connectionHandlerName);
- }
- if (stats != null) {
- long value = Long.parseLong((String) this.monitor.getAttribute(
- stats, "compareRequests"));
- return SNMPMonitor.counter32Value(value);
- } else {
- return 0L;
- }
+ return getCounter32Statistic("compareRequests");
}
/**
@@ -274,17 +226,7 @@
*/
@Override
public Long getDsApplIfOutBytes() {
- if (stats == null) {
- stats = this.monitor.getConnectionHandlerStatistics(
- connectionHandlerName);
- }
- if (stats != null) {
- long value = Long.parseLong((String) this.monitor.getAttribute(
- stats, "bytesWritten"));
- return SNMPMonitor.counter32Value(value);
- } else {
- return 0L;
- }
+ return getCounter32Statistic("bytesWritten");
}
/**
@@ -293,17 +235,7 @@
*/
@Override
public Long getDsApplIfInBytes() {
- if (stats == null) {
- stats = this.monitor.getConnectionHandlerStatistics(
- connectionHandlerName);
- }
- if (stats != null) {
- long value = Long.parseLong((String) this.monitor.getAttribute(
- stats, "bytesRead"));
- return SNMPMonitor.counter32Value(value);
- } else {
- return 0L;
- }
+ return getCounter32Statistic("bytesRead");
}
/**
--
Gitblit v1.10.0