From ab7058870d2da3a8a10300c4ddba22b5c16fe9a5 Mon Sep 17 00:00:00 2001 From: mstrankowski Date: Thu, 26 Oct 2023 13:32:56 +0200 Subject: [PATCH] ACS-6168: Add 5 retries when retrieving the temp directory to deal with clashes when high load is applied immediatelly at startup --- .../org/alfresco/transformer/fs/FileManager.java | 12 ++++++++---- .../org/alfresco/transform/base/fs/FileManager.java | 12 ++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/deprecated/alfresco-transformer-base/src/main/java/org/alfresco/transformer/fs/FileManager.java b/deprecated/alfresco-transformer-base/src/main/java/org/alfresco/transformer/fs/FileManager.java index dbc9c50e..c964276a 100644 --- a/deprecated/alfresco-transformer-base/src/main/java/org/alfresco/transformer/fs/FileManager.java +++ b/deprecated/alfresco-transformer-base/src/main/java/org/alfresco/transformer/fs/FileManager.java @@ -271,12 +271,16 @@ public class FileManager final File systemTempDir = new File(systemTempDirPath); final File tempDir = new File(systemTempDir, dirName); - if (!tempDir.exists() && !tempDir.mkdirs() && !tempDir.exists()) - { - throw new RuntimeException("Failed to create temp directory: " + tempDir); + + int retrieveTempDirAttemptLimit = 5; + for (int i = 0; i < retrieveTempDirAttemptLimit; i++) { + if (tempDir.exists() || tempDir.mkdirs()) + { + return tempDir; + } } - return tempDir; + throw new RuntimeException("Failed to create temp directory: " + tempDir); } } } diff --git a/engines/base/src/main/java/org/alfresco/transform/base/fs/FileManager.java b/engines/base/src/main/java/org/alfresco/transform/base/fs/FileManager.java index b5cf4f37..e525ab05 100644 --- a/engines/base/src/main/java/org/alfresco/transform/base/fs/FileManager.java +++ b/engines/base/src/main/java/org/alfresco/transform/base/fs/FileManager.java @@ -230,12 +230,16 @@ public class FileManager final File systemTempDir = new File(systemTempDirPath); final File tempDir = new File(systemTempDir, dirName); - if (!tempDir.exists() && !tempDir.mkdirs()) - { - throw new RuntimeException("Failed to create temp directory: " + tempDir); + + int retrieveTempDirAttemptLimit = 5; + for (int i = 0; i < retrieveTempDirAttemptLimit; i++) { + if (tempDir.exists() || tempDir.mkdirs()) + { + return tempDir; + } } - return tempDir; + throw new RuntimeException("Failed to create temp directory: " + tempDir); } } }