Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=59850
Ensure that the ResultSet is closed when enabling the StatementCache interceptor.

git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc8.0.x/trunk@1753456 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCache.java b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCache.java
index 7827563..cf6ff6c 100644
--- a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCache.java
+++ b/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementCache.java
@@ -18,6 +18,7 @@
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.sql.ResultSet;
 import java.sql.Statement;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
@@ -237,6 +238,11 @@
                 //cache a proxy so that we don't reuse the facade
                 CachedStatement proxy = new CachedStatement(getDelegate(),getSql());
                 try {
+                    // clear Resultset
+                    ResultSet result = getDelegate().getResultSet();
+                    if (result != null && !result.isClosed()) {
+                        result.close();
+                    }
                     //create a new facade
                     Object actualProxy = getConstructor().newInstance(new Object[] { proxy });
                     proxy.setActualProxy(actualProxy);
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index a9fe4c6..8f0f401 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -185,6 +185,10 @@
         remove the check code of the execution interval in the task that has
         been scheduled. (kfujino)
       </fix>
+      <fix>
+        <bug>59850</bug>: Ensure that the <code>ResultSet</code> is closed when
+        enabling the <code>StatementCache</code> interceptor. (kfujino)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Other">