This is an automated email from the ASF dual-hosted git repository. reschke pushed a commit to branch OAK-12098 in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit 6a5424a1b87d5e7bcec65c4a75480e1ce00469b5 Author: Julian Reschke <[email protected]> AuthorDate: Mon Feb 16 15:46:14 2026 +0100 OAK-12098: blob-plugins - remove use of TransientFileFactory (part 2) --- .../oak/plugins/blob/AbstractSharedCachingDataStore.java | 14 +++++++++----- .../jackrabbit/oak/plugins/blob/CachingDataStoreTest.java | 6 ++---- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java index 569f45cd71..a3ea5ede51 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java @@ -28,6 +28,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.nio.file.Files; import java.security.DigestOutputStream; import java.security.MessageDigest; import java.util.Iterator; @@ -52,8 +53,6 @@ import org.apache.jackrabbit.oak.spi.blob.AbstractDataRecord; import org.apache.jackrabbit.oak.spi.blob.AbstractSharedBackend; import org.apache.jackrabbit.oak.spi.blob.BlobOptions; import org.apache.jackrabbit.oak.stats.StatisticsProvider; -import org.apache.jackrabbit.util.LazyFileInputStream; -import org.apache.jackrabbit.util.TransientFileFactory; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -323,11 +322,16 @@ public abstract class AbstractSharedCachingDataStore extends AbstractDataStore try { // If cache configured to 0 will return null if (cached == null || !cached.exists()) { - TransientFileFactory fileFactory = TransientFileFactory.getInstance(); - File tmpFile = fileFactory.createTransientFile("temp0cache", null, temp); + final File tmpFile = Files.createTempFile(temp.toPath(), "blob-cache-", null).toFile(); try (InputStream in = backend.getRecord(getIdentifier()).getStream()) { copyInputStreamToFile(in, tmpFile); - return new LazyFileInputStream(tmpFile); + return new FileInputStream(tmpFile); + } finally { + // temp file can be created right now, as we already obtained the FileInputStream + boolean deleted = tmpFile.delete(); + if (!deleted) { + LOG.debug("Could not delete temporary file '{}''", tmpFile); + } } } else { return new FileInputStream(cached); diff --git a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CachingDataStoreTest.java b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CachingDataStoreTest.java index eb046262ab..41c16009f4 100644 --- a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CachingDataStoreTest.java +++ b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CachingDataStoreTest.java @@ -46,7 +46,6 @@ import org.apache.jackrabbit.oak.spi.blob.AbstractSharedBackend; import org.apache.jackrabbit.oak.spi.blob.BlobOptions; import org.apache.jackrabbit.oak.stats.DefaultStatisticsProvider; import org.apache.jackrabbit.oak.stats.StatisticsProvider; -import org.apache.jackrabbit.util.LazyFileInputStream; import org.junit.After; import org.junit.Before; import org.junit.Rule; @@ -192,12 +191,11 @@ public class CachingDataStoreTest extends AbstractDataStoreCacheTest { closer.register(is); assertNotNull(is); - assertTrue(is instanceof LazyFileInputStream); - ((LazyFileInputStream)is).open(); File tmp = new File(new File(path), "tmp"); + // (tmp file names are implementation details) Collection<File> temp0cacheFiles = - FileUtils.listFiles(tmp, FileFilterUtils.prefixFileFilter("temp0cache"), null); + FileUtils.listFiles(tmp, FileFilterUtils.prefixFileFilter("blob-cache-"), null); assertEquals(1, temp0cacheFiles.size()); assertFile(is, f, folder, false);
