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]