aws-advanced-jdbc-wrapper.git / summary / log / commit / refs
commit 30e1d8818e043b92d84439a25e4e670efda170f2
Author: sergiyvamz <75754709+sergiyvamz@users.noreply.github.com>
Commit: GitHub <noreply@github.com>
Date: Thu May 07 19:19:22 2026 +0000
fix: NPE in various classes (#1898)
.../software/amazon/jdbc/HikariPooledConnectionProvider.java | 9 +++++++--
.../java/software/amazon/jdbc/hostlistprovider/Topology.java | 7 ++++++-
.../amazon/jdbc/plugin/efm/v2/HostMonitorServiceV2Impl.java | 2 +-
3 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/wrapper/src/main/java/software/amazon/jdbc/HikariPooledConnectionProvider.java b/wrapper/src/main/java/software/amazon/jdbc/HikariPooledConnectionProvider.java
index 8b299b4d..7ef13309 100644
--- a/wrapper/src/main/java/software/amazon/jdbc/HikariPooledConnectionProvider.java
+++ b/wrapper/src/main/java/software/amazon/jdbc/HikariPooledConnectionProvider.java
@@ -481,8 +481,13 @@ public class HikariPooledConnectionProvider implements PooledConnectionProvider,
poolInfo.add(Pair.create("dataSource", dataSource.toString()));
if (dataSource instanceof HikariDataSource) {
HikariPoolMXBean bean = ((HikariDataSource) dataSource).getHikariPoolMXBean();
- poolInfo.add(Pair.create("activeConnections", bean.getActiveConnections()));
- poolInfo.add(Pair.create("totalConnections", bean.getTotalConnections()));
+ if (bean != null) {
+ poolInfo.add(Pair.create("activeConnections", bean.getActiveConnections()));
+ poolInfo.add(Pair.create("totalConnections", bean.getTotalConnections()));
+ } else {
+ poolInfo.add(Pair.create("activeConnections", "(unknown)"));
+ poolInfo.add(Pair.create("totalConnections", "(unknown)"));
+ }
}
pools.add(Pair.create(key.toString(), poolInfo));
});
diff --git a/wrapper/src/main/java/software/amazon/jdbc/hostlistprovider/Topology.java b/wrapper/src/main/java/software/amazon/jdbc/hostlistprovider/Topology.java
index 119b7568..26f3cb74 100644
--- a/wrapper/src/main/java/software/amazon/jdbc/hostlistprovider/Topology.java
+++ b/wrapper/src/main/java/software/amazon/jdbc/hostlistprovider/Topology.java
@@ -58,7 +58,12 @@ public class Topology implements StateSnapshotProvider {
public List<Pair<String, Object>> getSnapshotState() {
List<Pair<String, Object>> state = new ArrayList<>();
for (HostSpec host : this.hosts) {
- state.add(Pair.create(host.getHostId(), host.toString()));
+ if (host != null) {
+ String hostId = host.getHostId() != null ? host.getHostId() : "null";
+ state.add(Pair.create(hostId, host.toString()));
+ } else {
+ state.add(Pair.create("null", "null"));
+ }
}
return state;
}
diff --git a/wrapper/src/main/java/software/amazon/jdbc/plugin/efm/v2/HostMonitorServiceV2Impl.java b/wrapper/src/main/java/software/amazon/jdbc/plugin/efm/v2/HostMonitorServiceV2Impl.java
index 3bea0805..a89bcf45 100644
--- a/wrapper/src/main/java/software/amazon/jdbc/plugin/efm/v2/HostMonitorServiceV2Impl.java
+++ b/wrapper/src/main/java/software/amazon/jdbc/plugin/efm/v2/HostMonitorServiceV2Impl.java
@@ -185,7 +185,7 @@ public class HostMonitorServiceV2Impl implements HostMonitorService, StateSnapsh
state.add(Pair.create("failureDetectionTimeMillis", this.failureDetectionTimeMillis));
state.add(Pair.create("failureDetectionIntervalMillis", this.failureDetectionIntervalMillis));
state.add(Pair.create("failureDetectionCount", this.failureDetectionCount));
- state.add(Pair.create("monitorKey", this.monitorKey.toString()));
+ state.add(Pair.create("monitorKey", this.monitorKey == null ? "null" : this.monitorKey.toString()));
return state;
}
[parent: 3acdc0313800]