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 2020/03/16 07:29:07 UTC

svn commit: r1875233 - in /jackrabbit/oak/branches/1.10: ./ 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/luc...

Author: reschke
Date: Mon Mar 16 07:29:07 2020
New Revision: 1875233

URL: http://svn.apache.org/viewvc?rev=1875233&view=rev
Log:
OAK-5787: BlobStore should be AutoCloseable (merged r1871267 into 1.10)

Modified:
    jackrabbit/oak/branches/1.10/   (props changed)
    jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStore.java
    jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/BlobStore.java
    jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/DefaultSplitBlobStore.java
    jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/WrappingSplitBlobStore.java
    jackrabbit/oak/branches/1.10/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/AbstractActiveDeletedBlobTest.java
    jackrabbit/oak/branches/1.10/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/ActiveDeletedBlobCollectorTest.java
    jackrabbit/oak/branches/1.10/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/BasicReadOnlyBlobStore.java
    jackrabbit/oak/branches/1.10/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java
    jackrabbit/oak/branches/1.10/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ExternalBlobIT.java
    jackrabbit/oak/branches/1.10/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
    jackrabbit/oak/branches/1.10/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/LoopbackBlobStore.java

Propchange: jackrabbit/oak/branches/1.10/
------------------------------------------------------------------------------
  Merged /jackrabbit/oak/trunk:r1871267

Modified: jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStore.java?rev=1875233&r1=1875232&r2=1875233&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStore.java (original)
+++ jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStore.java Mon Mar 16 07:29:07 2020
@@ -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/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/BlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/BlobStore.java?rev=1875233&r1=1875232&r2=1875233&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/BlobStore.java (original)
+++ jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/BlobStore.java Mon Mar 16 07:29:07 2020
@@ -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/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/DefaultSplitBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/DefaultSplitBlobStore.java?rev=1875233&r1=1875232&r2=1875233&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/DefaultSplitBlobStore.java (original)
+++ jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/DefaultSplitBlobStore.java Mon Mar 16 07:29:07 2020
@@ -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/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/WrappingSplitBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/WrappingSplitBlobStore.java?rev=1875233&r1=1875232&r2=1875233&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/WrappingSplitBlobStore.java (original)
+++ jackrabbit/oak/branches/1.10/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/split/WrappingSplitBlobStore.java Mon Mar 16 07:29:07 2020
@@ -104,4 +104,9 @@ public class WrappingSplitBlobStore impl
         return getSplitBlobStore().isMigrated(blobId);
     }
 
+    @Override
+    public void close() throws Exception {
+        getSplitBlobStore().close();
+    }
+
 }

Modified: jackrabbit/oak/branches/1.10/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/AbstractActiveDeletedBlobTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/AbstractActiveDeletedBlobTest.java?rev=1875233&r1=1875232&r2=1875233&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/AbstractActiveDeletedBlobTest.java (original)
+++ jackrabbit/oak/branches/1.10/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/AbstractActiveDeletedBlobTest.java Mon Mar 16 07:29:07 2020
@@ -294,5 +294,8 @@ public abstract class AbstractActiveDele
             }
             return Type.DEFAULT;
         }
+
+        @Override public void close() throws Exception {
+        }
     }
 }

Modified: jackrabbit/oak/branches/1.10/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/ActiveDeletedBlobCollectorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/ActiveDeletedBlobCollectorTest.java?rev=1875233&r1=1875232&r2=1875233&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/ActiveDeletedBlobCollectorTest.java (original)
+++ jackrabbit/oak/branches/1.10/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/ActiveDeletedBlobCollectorTest.java Mon Mar 16 07:29:07 2020
@@ -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/branches/1.10/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/BasicReadOnlyBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/BasicReadOnlyBlobStore.java?rev=1875233&r1=1875232&r2=1875233&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/BasicReadOnlyBlobStore.java (original)
+++ jackrabbit/oak/branches/1.10/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/BasicReadOnlyBlobStore.java Mon Mar 16 07:29:07 2020
@@ -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/branches/1.10/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java?rev=1875233&r1=1875232&r2=1875233&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java (original)
+++ jackrabbit/oak/branches/1.10/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java Mon Mar 16 07:29:07 2020
@@ -85,6 +85,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) {
@@ -94,7 +99,6 @@ public class BlobIdRecordTest {
         }
 
         protected abstract String generateId();
-
     }
 
     private static class ShortIdMappingBlobStore extends IdMappingBlobStore {

Modified: jackrabbit/oak/branches/1.10/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ExternalBlobIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ExternalBlobIT.java?rev=1875233&r1=1875232&r2=1875233&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ExternalBlobIT.java (original)
+++ jackrabbit/oak/branches/1.10/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ExternalBlobIT.java Mon Mar 16 07:29:07 2020
@@ -237,6 +237,10 @@ public class ExternalBlobIT {
         public String getReference(@NotNull String blobId) {
             return blobId;
         }
+
+        @Override
+        public void close() throws Exception {
+        }
     }
 
     @Test

Modified: jackrabbit/oak/branches/1.10/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java?rev=1875233&r1=1875232&r2=1875233&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java (original)
+++ jackrabbit/oak/branches/1.10/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java Mon Mar 16 07:29:07 2020
@@ -808,13 +808,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/branches/1.10/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/LoopbackBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/LoopbackBlobStore.java?rev=1875233&r1=1875232&r2=1875233&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/LoopbackBlobStore.java (original)
+++ jackrabbit/oak/branches/1.10/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/blob/LoopbackBlobStore.java Mon Mar 16 07:29:07 2020
@@ -108,4 +108,8 @@ public class LoopbackBlobStore implement
     public String getReference(@NotNull String blobId) {
         return checkNotNull(blobId);
     }
+
+    @Override
+    public void close() throws Exception {
+    }
 }