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 2019/12/12 11:05:14 UTC
svn commit: r1871267 - in /jackrabbit/oak/trunk:
oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/
oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/
oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directo...
Author: reschke
Date: Thu Dec 12 11:05:13 2019
New Revision: 1871267
URL: http://svn.apache.org/viewvc?rev=1871267&view=rev
Log:
OAK-5787: BlobStore should be AutoCloseable
Modified:
jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStore.java
jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/BlobStore.java
jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/DefaultSplitBlobStore.java
jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/WrappingSplitBlobStore.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/AbstractActiveDeletedBlobTest.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/ActiveDeletedBlobCollectorTest.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/BasicReadOnlyBlobStore.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ExternalBlobIT.java
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/LoopbackBlobStore.java
Modified: jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStore.java?rev=1871267&r1=1871266&r2=1871267&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStore.java (original)
+++ jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStore.java Thu Dec 12 11:05:13 2019
@@ -611,7 +611,11 @@ public abstract class AbstractBlobStore
public boolean deleteChunks(List<String> chunkIds, long maxLastModifiedTime) throws Exception {
return (chunkIds.size() == countDeleteChunks(chunkIds, maxLastModifiedTime));
}
-
+
+ @Override
+ public void close() throws Exception {
+ }
+
/**
* A block id. Blocks are small enough to fit in memory, so they can be
* cached.
Modified: jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/BlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/BlobStore.java?rev=1871267&r1=1871266&r2=1871267&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/BlobStore.java (original)
+++ jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/BlobStore.java Thu Dec 12 11:05:13 2019
@@ -25,7 +25,7 @@ import org.jetbrains.annotations.Nullabl
/**
* An interface to store and read large binary objects.
*/
-public interface BlobStore {
+public interface BlobStore extends AutoCloseable {
/**
* Write a blob from an input stream.
Modified: jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/DefaultSplitBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/DefaultSplitBlobStore.java?rev=1871267&r1=1871266&r2=1871267&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/DefaultSplitBlobStore.java (original)
+++ jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/DefaultSplitBlobStore.java Thu Dec 12 11:05:13 2019
@@ -124,4 +124,26 @@ public class DefaultSplitBlobStore imple
public String toString() {
return String.format("SplitBlobStore[old=%s, new=%s]", oldBlobStore, newBlobStore);
}
+
+ @Override
+ public void close() throws Exception {
+ Exception thrown = null;
+ try {
+ oldBlobStore.close();
+ } catch (Exception ex) {
+ thrown = ex;
+ }
+ try {
+ newBlobStore.close();
+ } catch (Exception ex) {
+ if (thrown != null) {
+ thrown.addSuppressed(ex);
+ } else {
+ thrown = ex;
+ }
+ }
+ if (thrown != null) {
+ throw thrown;
+ }
+ }
}
Modified: jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/WrappingSplitBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/WrappingSplitBlobStore.java?rev=1871267&r1=1871266&r2=1871267&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/WrappingSplitBlobStore.java (original)
+++ jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/WrappingSplitBlobStore.java Thu Dec 12 11:05:13 2019
@@ -104,4 +104,9 @@ public class WrappingSplitBlobStore impl
return getSplitBlobStore().isMigrated(blobId);
}
+ @Override
+ public void close() throws Exception {
+ getSplitBlobStore().close();
+ }
+
}
Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/AbstractActiveDeletedBlobTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/AbstractActiveDeletedBlobTest.java?rev=1871267&r1=1871266&r2=1871267&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/AbstractActiveDeletedBlobTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/AbstractActiveDeletedBlobTest.java Thu Dec 12 11:05:13 2019
@@ -294,5 +294,8 @@ public abstract class AbstractActiveDele
}
return Type.DEFAULT;
}
+
+ @Override public void close() throws Exception {
+ }
}
}
Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/ActiveDeletedBlobCollectorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/ActiveDeletedBlobCollectorTest.java?rev=1871267&r1=1871266&r2=1871267&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/ActiveDeletedBlobCollectorTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/ActiveDeletedBlobCollectorTest.java Thu Dec 12 11:05:13 2019
@@ -631,6 +631,10 @@ public class ActiveDeletedBlobCollectorT
return Iterators.forArray(blobId + "-1", blobId + "-2");
}
+ @Override
+ public void close() throws Exception {
+ }
+
private void resetLists() {
deletedChunkIds.clear();
failWithDSEForChunkIds.clear();
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/BasicReadOnlyBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/BasicReadOnlyBlobStore.java?rev=1871267&r1=1871266&r2=1871267&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/BasicReadOnlyBlobStore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/BasicReadOnlyBlobStore.java Thu Dec 12 11:05:13 2019
@@ -81,4 +81,8 @@ public class BasicReadOnlyBlobStore impl
public String getReference(@NotNull String blobId) {
return blobId;
}
+
+ @Override
+ public void close() throws Exception {
+ }
}
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java?rev=1871267&r1=1871266&r2=1871267&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java Thu Dec 12 11:05:13 2019
@@ -86,6 +86,11 @@ public class BlobIdRecordTest {
return bs.getBlobId(mapId(s));
}
+ @Override
+ public void close() throws Exception {
+ bs.close();
+ }
+
private String mapId(String in) {
String out = ids.get(in);
if (out == null) {
@@ -95,7 +100,6 @@ public class BlobIdRecordTest {
}
protected abstract String generateId();
-
}
private static class ShortIdMappingBlobStore extends IdMappingBlobStore {
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ExternalBlobIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ExternalBlobIT.java?rev=1871267&r1=1871266&r2=1871267&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ExternalBlobIT.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ExternalBlobIT.java Thu Dec 12 11:05:13 2019
@@ -241,6 +241,10 @@ public class ExternalBlobIT {
public String getReference(@NotNull String blobId) {
return blobId;
}
+
+ @Override
+ public void close() throws Exception {
+ }
}
@Test
Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java?rev=1871267&r1=1871266&r2=1871267&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java Thu Dec 12 11:05:13 2019
@@ -827,13 +827,12 @@ public final class DocumentNodeStore
store.dispose();
- if (blobStore instanceof Closeable) {
- try {
- ((Closeable) blobStore).close();
- } catch (IOException e) {
- LOG.debug("Error closing blob store " + blobStore, e);
- }
+ try {
+ blobStore.close();
+ } catch (Exception e) {
+ LOG.debug("Error closing blob store " + blobStore, e);
}
+
if (persistentCache != null) {
persistentCache.close();
}
Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/LoopbackBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/LoopbackBlobStore.java?rev=1871267&r1=1871266&r2=1871267&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/LoopbackBlobStore.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/LoopbackBlobStore.java Thu Dec 12 11:05:13 2019
@@ -108,4 +108,8 @@ public class LoopbackBlobStore implement
public String getReference(@NotNull String blobId) {
return checkNotNull(blobId);
}
+
+ @Override
+ public void close() throws Exception {
+ }
}