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]