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);
}
}