diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/ObserverTracker.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/ObserverTracker.java index cf3dfbf..fbc5873 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/ObserverTracker.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/ObserverTracker.java @@ -82,9 +82,11 @@ public class ObserverTracker implements ServiceTrackerCustomizer { public void removedService(ServiceReference reference, Object service) { Closeable subscription = subscriptions.remove(reference); if (subscription != null) { - Closeables.closeQuietly(subscription); - bundleContext.ungetService(reference); + try { + Closeables.close(subscription, true); + bundleContext.ungetService(reference); + } catch (Exception e) { + } } } - } diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlob.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlob.java index 1489f78..006dd75 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlob.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/AbstractBlob.java @@ -26,8 +26,8 @@ import javax.annotation.Nonnull; import com.google.common.hash.HashCode; import com.google.common.hash.Hashing; +import com.google.common.io.ByteSource; import com.google.common.io.ByteStreams; -import com.google.common.io.InputSupplier; import org.apache.jackrabbit.oak.api.Blob; @@ -38,10 +38,10 @@ import org.apache.jackrabbit.oak.api.Blob; */ public abstract class AbstractBlob implements Blob { - private static InputSupplier supplier(final Blob blob) { - return new InputSupplier() { + private static ByteSource supplier(final Blob blob) { + return new ByteSource() { @Override - public InputStream getInput() throws IOException { + public InputStream openStream() throws IOException { return blob.getNewStream(); } }; @@ -65,7 +65,7 @@ public abstract class AbstractBlob implements Blob { } try { - return ByteStreams.equal(supplier(a), supplier(b)); + return supplier(a).contentEquals(supplier(b)); } catch (IOException e) { throw new IllegalStateException("Blob equality check failed", e); } @@ -105,7 +105,7 @@ public abstract class AbstractBlob implements Blob { // Blobs are immutable so we can safely cache the hash if (hashCode == null) { try { - hashCode = ByteStreams.hash(supplier(this), Hashing.sha256()); + hashCode = supplier(this).hash(Hashing.sha256()); } catch (IOException e) { throw new IllegalStateException("Hash calculation failed", e); } diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CompositeDataStoreCacheTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CompositeDataStoreCacheTest.java index ecb9dfa..d411193 100644 --- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CompositeDataStoreCacheTest.java +++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CompositeDataStoreCacheTest.java @@ -506,7 +506,7 @@ public class CompositeDataStoreCacheTest extends AbstractDataStoreCacheTest { // Get a handle to the file and open stream File fileOnUpload = cache.getIfPresent(ID_PREFIX + 0); assertNotNull(fileOnUpload); - final FileInputStream fStream = Files.newInputStreamSupplier(fileOnUpload).getInput(); + final InputStream fStream = Files.asByteSource(fileOnUpload).openStream(); thread1Start.countDown(); diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/UploadStagingCacheTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/UploadStagingCacheTest.java index c83fcc7..7da5da7 100644 --- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/UploadStagingCacheTest.java +++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/UploadStagingCacheTest.java @@ -431,7 +431,7 @@ public class UploadStagingCacheTest extends AbstractDataStoreCacheTest { // Get a handle to the file and open stream File file = stagingCache.getIfPresent(ID_PREFIX + 0); - final FileInputStream fStream = Files.newInputStreamSupplier(file).getInput(); + final InputStream fStream = Files.asByteSource(file).openStream(); // task to copy the steam to a file simulating read from the stream File temp = folder.newFile(); diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKCommitAddTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKCommitAddTest.java index 4a47c21..9f56574 100644 --- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKCommitAddTest.java +++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKCommitAddTest.java @@ -203,7 +203,7 @@ public class DocumentMKCommitAddTest extends BaseDocumentMKTest { @Ignore("OAK-461") public void commitTime() throws Exception { boolean debug = false; - final Stopwatch watch = new Stopwatch(); + final Stopwatch watch = Stopwatch.createUnstarted(); for (int i = 0; i < 1000; i++) { watch.start(); String diff = "+\"a"+i+"\" : {} +\"b"+i+"\" : {} +\"c"+i+"\" : {}"; diff --git a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/blob/LengthCachingDataStore.java b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/blob/LengthCachingDataStore.java index cf0af0a..ae792c1 100644 --- a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/blob/LengthCachingDataStore.java +++ b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/blob/LengthCachingDataStore.java @@ -292,7 +292,7 @@ public class LengthCachingDataStore extends AbstractDataStore { InputStream is = null; try { Properties props = new Properties(); - is = Files.newInputStreamSupplier(configFile).getInput(); + is = Files.asByteSource(configFile).openStream(); props.load(is); PropertiesUtil.populate(delegate, propsToMap(props), false); log.info("Configured the delegating DataStore via {}", configFile.getAbsolutePath()); diff --git a/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/blob/LengthCachingDataStoreTest.java b/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/blob/LengthCachingDataStoreTest.java index a4f2c83..33be803 100644 --- a/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/blob/LengthCachingDataStoreTest.java +++ b/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/blob/LengthCachingDataStoreTest.java @@ -19,6 +19,7 @@ package org.apache.jackrabbit.oak.upgrade.blob; +import com.google.common.io.ByteSource; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; @@ -39,6 +40,7 @@ import org.apache.jackrabbit.core.data.DataIdentifier; import org.apache.jackrabbit.core.data.DataRecord; import org.apache.jackrabbit.core.data.DataStoreException; import org.apache.jackrabbit.core.data.FileDataStore; +import org.apache.jackrabbit.oak.api.Blob; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -106,7 +108,7 @@ public class LengthCachingDataStoreTest { assertEquals(dr, dr2); assertEquals(dr.getLength(), dr2.getLength()); - assertTrue(ByteStreams.equal(supplier(dr), supplier(dr2))); + assertTrue(supplier(dr).contentEquals(supplier(dr2))); } @Test @@ -181,10 +183,10 @@ public class LengthCachingDataStoreTest { return data; } - private static InputSupplier supplier(final DataRecord dr) { - return new InputSupplier() { + private static ByteSource supplier(final DataRecord dr) { + return new ByteSource() { @Override - public InputStream getInput() throws IOException { + public InputStream openStream() throws IOException { try { return dr.getStream(); } catch (DataStoreException e) {