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);

Reply via email to