Author: reschke
Date: Tue Feb 11 15:47:03 2014
New Revision: 1567188
URL: http://svn.apache.org/r1567188
Log:
OAK-1266 - make sure connections get closed
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java?rev=1567188&r1=1567187&r2=1567188&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
Tue Feb 11 15:47:03 2014
@@ -61,6 +61,7 @@ import org.apache.jackrabbit.oak.cache.C
import org.apache.jackrabbit.oak.cache.CacheValue;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.kernel.BlobSerializer;
+import org.apache.jackrabbit.oak.plugins.document.rdb.RDBBlobStore;
import
org.apache.jackrabbit.oak.plugins.document.util.LoggingDocumentStoreWrapper;
import org.apache.jackrabbit.oak.plugins.document.util.StringValue;
import
org.apache.jackrabbit.oak.plugins.document.util.TimingDocumentStoreWrapper;
@@ -351,6 +352,10 @@ public final class DocumentNodeStore
clusterNodeInfo.dispose();
}
store.dispose();
+ if (blobStore instanceof RDBBlobStore) {
+ // maybe this should be an interface
+ ((RDBBlobStore) blobStore).dispose();
+ }
LOG.info("Disposed DocumentNodeStore with clusterNodeId: {}",
clusterId);
}
}
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java?rev=1567188&r1=1567187&r2=1567188&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
Tue Feb 11 15:47:03 2014
@@ -83,8 +83,17 @@ public class RDBBlobStore extends Abstra
}
}
+ @Override
+ public void finalize() {
+ if (this.connection != null && this.callStack != null) {
+ LOG.debug("finalizing RDBDocumentStore that was not disposed",
this.callStack);
+ }
+ }
+
private static final Logger LOG =
LoggerFactory.getLogger(RDBBlobStore.class);
+ private Exception callStack;
+
private Connection connection;
private void initialize(Connection con) throws Exception {
@@ -106,6 +115,7 @@ public class RDBBlobStore extends Abstra
}
this.connection = con;
+ this.callStack = LOG.isDebugEnabled() ? new Exception("call stack of
RDBBlobStore creation") : null;
}
private void createTables(Connection con, String binaryType) throws
SQLException {
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java?rev=1567188&r1=1567187&r2=1567188&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
Tue Feb 11 15:47:03 2014
@@ -170,6 +170,8 @@ public class RDBDocumentStore implements
private final Comparator<Revision> comparator =
StableRevisionComparator.REVERSE;
+ private Exception callStack;
+
private Connection connection;
private void initialize(Connection con) throws Exception {
@@ -183,6 +185,14 @@ public class RDBDocumentStore implements
con.commit();
this.connection = con;
+ this.callStack = LOG.isDebugEnabled() ? new Exception("call stack of
RDBDocumentStore creation") : null;
+ }
+
+ @Override
+ public void finalize() {
+ if (this.connection != null && this.callStack != null) {
+ LOG.debug("finalizing RDBDocumentStore that was not disposed",
this.callStack);
+ }
}
@CheckForNull