You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2016/07/26 09:58:33 UTC

svn commit: r1754097 - /jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java

Author: reschke
Date: Tue Jul 26 09:58:32 2016
New Revision: 1754097

URL: http://svn.apache.org/viewvc?rev=1754097&view=rev
Log:
OAK-4559: make sure all ResultSets get explicitly closed in order to address Tomcat JDBC Pool issues with StatementCache interceptor
 (adding missing change) (ported to 1.2)

Modified:
    jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java

Modified: jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java?rev=1754097&r1=1754096&r2=1754097&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java (original)
+++ jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java Tue Jul 26 09:58:32 2016
@@ -391,6 +391,7 @@ public class RDBDocumentStoreJDBC {
         }
 
         PreparedStatement stmt = connection.prepareStatement(query.toString());
+        ResultSet rs = null;
         List<RDBRow> result = new ArrayList<RDBRow>();
         long dataTotal = 0, bdataTotal = 0;
         try {
@@ -410,7 +411,7 @@ public class RDBDocumentStoreJDBC {
             if (limit != Integer.MAX_VALUE) {
                 stmt.setFetchSize(limit);
             }
-            ResultSet rs = stmt.executeQuery();
+            rs = stmt.executeQuery();
             while (rs.next() && result.size() < limit) {
                 String id = getIdFromRS(tmd, rs, 1);
 
@@ -430,7 +431,8 @@ public class RDBDocumentStoreJDBC {
                 bdataTotal += bdata == null ? 0 : bdata.length;
             }
         } finally {
-            stmt.close();
+            closeResultSet(rs);
+            closeStatement(stmt);
         }
 
         long elapsed = System.currentTimeMillis() - start;
@@ -469,6 +471,7 @@ public class RDBDocumentStoreJDBC {
         }
         sql.append("from " + tmd.getName() + " where ID = ?");
         PreparedStatement stmt = connection.prepareStatement(sql.toString());
+        ResultSet rs = null;
 
         try {
             int si = 1;
@@ -480,7 +483,7 @@ public class RDBDocumentStoreJDBC {
             }
             setIdInStatement(tmd, stmt, si, id);
 
-            ResultSet rs = stmt.executeQuery();
+            rs = stmt.executeQuery();
             if (rs.next()) {
                 long modified = readLongFromResultSet(rs, 1);
                 long modcount = readLongFromResultSet(rs, 2);
@@ -508,7 +511,8 @@ public class RDBDocumentStoreJDBC {
                 throw (ex);
             }
         } finally {
-            stmt.close();
+            closeResultSet(rs);
+            closeStatement(stmt);
         }
     }