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 2025/10/13 13:48:35 UTC
(jackrabbit-oak) 01/01: OAK-11981: blob-plugins - remove use of TransientFileFactory
This is an automated email from the ASF dual-hosted git repository.
reschke pushed a commit to branch OAK-11981
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit ed3a6436831ee0e900def083a81c9e95f03db4c5
Author: Julian Reschke <re...@apache.org>
AuthorDate: Mon Oct 13 14:48:14 2025 +0100
OAK-11981: blob-plugins - remove use of TransientFileFactory
---
.../oak/plugins/blob/AbstractSharedCachingDataStore.java | 14 ++++++++------
.../jackrabbit/oak/plugins/blob/datastore/FSBackend.java | 11 +++++------
2 files changed, 13 insertions(+), 12 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 2497499035..7a0f8493b5 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
@@ -224,9 +224,9 @@ public abstract class AbstractSharedCachingDataStore extends AbstractDataStore
public DataRecord addRecord(InputStream inputStream, BlobOptions blobOptions)
throws DataStoreException {
Stopwatch watch = Stopwatch.createStarted();
+ File tmpFile = null;
try {
- TransientFileFactory fileFactory = TransientFileFactory.getInstance();
- File tmpFile = fileFactory.createTransientFile("upload", null, tmp);
+ tmpFile = File.createTempFile("upload", null, tmp);
// Copy the stream to the temporary file and calculate the
// stream length and the message digest of the stream
@@ -251,16 +251,18 @@ public abstract class AbstractSharedCachingDataStore extends AbstractDataStore
LOG.debug("Added blob [{}] to backend", identifier);
// offer to download cache
cache.getDownloadCache().put(identifier.toString(), tmpFile);
-
- // Attempt deleting the temporary file
- boolean deletedTemp = FileUtils.deleteQuietly(tmpFile);
- LOG.trace("Temporary file deleted {}", deletedTemp);
}
return getRecordIfStored(identifier);
} catch (Exception e) {
LOG.error("Error in adding record");
throw new DataStoreException("Error in adding record ", e);
+ } finally {
+ // Attempt deleting the temporary file
+ if (tmpFile != null) {
+ boolean deletedTemp = FileUtils.deleteQuietly(tmpFile);
+ LOG.trace("Temporary file {} deleted: {}", tmpFile, deletedTemp);
+ }
}
}
diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/FSBackend.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/FSBackend.java
index 8392394969..28bf7c6123 100644
--- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/FSBackend.java
+++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/FSBackend.java
@@ -40,7 +40,6 @@ import org.apache.jackrabbit.core.data.LazyFileInputStream;
import org.apache.jackrabbit.oak.commons.io.FileTreeTraverser;
import org.apache.jackrabbit.oak.spi.blob.AbstractDataRecord;
import org.apache.jackrabbit.oak.spi.blob.AbstractSharedBackend;
-import org.apache.jackrabbit.util.TransientFileFactory;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -102,18 +101,18 @@ public class FSBackend extends AbstractSharedBackend {
@Override
public void write(DataIdentifier identifier, File file) throws DataStoreException {
- TransientFileFactory fileFactory = TransientFileFactory.getInstance();
- File tmpFile = null;
-
File dest = getFile(identifier, fsPathDir);
+
if (dest.exists()) {
long now = System.currentTimeMillis();
if (getLastModified(dest) < now + ACCESS_TIME_RESOLUTION) {
setLastModified(dest, now + ACCESS_TIME_RESOLUTION);
}
} else {
+ File tmpFile = null;
+
try {
- tmpFile = fileFactory.createTransientFile("fsbackend", null, fsPathDir);
+ tmpFile = File.createTempFile("fsbackend", null, fsPathDir);
FileUtils.copyFile(file, tmpFile);
File parent = dest.getParentFile();
@@ -129,7 +128,7 @@ public class FSBackend extends AbstractSharedBackend {
+ " (media read only?)");
}
}
- } catch (IOException e) {
+ } catch (IOException e) {
throw new DataStoreException("Could not add record", e);
} finally {
if (tmpFile != null) {