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 2026/02/16 14:47:09 UTC
(jackrabbit-oak) branch OAK-12098 created (now 6a5424a1b8)
This is an automated email from the ASF dual-hosted git repository.
reschke pushed a change to branch OAK-12098
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
at 6a5424a1b8 OAK-12098: blob-plugins - remove use of TransientFileFactory (part 2)
This branch includes the following new commits:
new 6a5424a1b8 OAK-12098: blob-plugins - remove use of TransientFileFactory (part 2)
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(jackrabbit-oak) 01/01: OAK-12098: blob-plugins - remove use of TransientFileFactory (part 2)
Posted by re...@apache.org.
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 <re...@apache.org>
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);