aws-advanced-jdbc-wrapper.git / summary / log / commit / refs
commit fb37b2c838bddab2d98c080ae9ebeaedec74c73b
Author: Sophia Chu <112967780+sophia-bq@users.noreply.github.com>
Commit: GitHub <noreply@github.com>
Date: Tue May 05 19:46:57 2026 +0000
fix: prevent stale statement caching (#1889)
wrapper/src/main/java/software/amazon/jdbc/JdbcMethod.java | 2 +-
.../amazon/jdbc/plugin/failover/FailoverConnectionPlugin.java | 5 +++++
.../amazon/jdbc/plugin/failover2/FailoverConnectionPlugin.java | 5 +++++
3 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/wrapper/src/main/java/software/amazon/jdbc/JdbcMethod.java b/wrapper/src/main/java/software/amazon/jdbc/JdbcMethod.java
index c8266084..94ad0666 100644
--- a/wrapper/src/main/java/software/amazon/jdbc/JdbcMethod.java
+++ b/wrapper/src/main/java/software/amazon/jdbc/JdbcMethod.java
@@ -794,7 +794,7 @@ false, false, true, false),
PREPAREDSTATEMENT_GETMETADATA(363, "PreparedStatement.getMetaData",
false, true, true, false),
PREPAREDSTATEMENT_GETMORERESULTS(364, "PreparedStatement.getMoreResults",
-false, false, true, false),
+false, false, true, true),
PREPAREDSTATEMENT_GETPARAMETERMETADATA(365, "PreparedStatement.getParameterMetaData",
false, true, true, false),
PREPAREDSTATEMENT_GETQUERYTIMEOUT(366, "PreparedStatement.getQueryTimeout",
diff --git a/wrapper/src/main/java/software/amazon/jdbc/plugin/failover/FailoverConnectionPlugin.java b/wrapper/src/main/java/software/amazon/jdbc/plugin/failover/FailoverConnectionPlugin.java
index d33268f4..93fef2ad 100644
--- a/wrapper/src/main/java/software/amazon/jdbc/plugin/failover/FailoverConnectionPlugin.java
+++ b/wrapper/src/main/java/software/amazon/jdbc/plugin/failover/FailoverConnectionPlugin.java
@@ -197,6 +197,11 @@ public class FailoverConnectionPlugin extends AbstractConnectionPlugin implement
connection might be closed since recent failover so failover plugin needs to handle it. */
methods.add(JdbcMethod.CONNECTION_CLEARWARNINGS.methodName);
+ /* Open Liberty calls getMoreResults on a PreparedStatement before returning it to its
+ statement cache. If the statement is bound to a stale connection after failover, the
+ failover plugin needs to handle it so the statement is not silently cached and reused. */
+ methods.add(JdbcMethod.PREPAREDSTATEMENT_GETMORERESULTS.methodName);
+
methods.add(JdbcMethod.INITHOSTPROVIDER.methodName);
methods.add(JdbcMethod.CONNECT.methodName);
methods.add(JdbcMethod.NOTIFYCONNECTIONCHANGED.methodName);
diff --git a/wrapper/src/main/java/software/amazon/jdbc/plugin/failover2/FailoverConnectionPlugin.java b/wrapper/src/main/java/software/amazon/jdbc/plugin/failover2/FailoverConnectionPlugin.java
index be5c7ed6..de0b7126 100644
--- a/wrapper/src/main/java/software/amazon/jdbc/plugin/failover2/FailoverConnectionPlugin.java
+++ b/wrapper/src/main/java/software/amazon/jdbc/plugin/failover2/FailoverConnectionPlugin.java
@@ -189,6 +189,11 @@ public class FailoverConnectionPlugin extends AbstractConnectionPlugin implement
connection might be closed since recent failover so failover plugin needs to handle it. */
methods.add(JdbcMethod.CONNECTION_CLEARWARNINGS.methodName);
+ /* Open Liberty calls getMoreResults on a PreparedStatement before returning it to its
+ statement cache. If the statement is bound to a stale connection after failover, the
+ failover plugin needs to handle it so the statement is not silently cached and reused. */
+ methods.add(JdbcMethod.PREPAREDSTATEMENT_GETMORERESULTS.methodName);
+
methods.add(JdbcMethod.INITHOSTPROVIDER.methodName);
methods.add(JdbcMethod.CONNECT.methodName);
methods.add(JdbcMethod.NOTIFYNODELISTCHANGED.methodName);
[parent: 0bed26a2cedf]