From 34bcd7d60c39a97aa6b86da8779a93dccee5ab44 Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Tue, 30 Apr 2019 14:04:50 -0400 Subject: [PATCH] Synchronize RemoteFileUtils.makeDirectories() https://stackoverflow.com/questions/55918648 Avoid the race with concurrent threads. **cherry-pick to 5.x.x, 4.3.x** (cherry picked from commit 130e1bba3163ae79fbd82d36910574606738b011) --- .../integration/file/remote/RemoteFileUtils.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/spring-integration-file/src/main/java/org/springframework/integration/file/remote/RemoteFileUtils.java b/spring-integration-file/src/main/java/org/springframework/integration/file/remote/RemoteFileUtils.java index ae327afd7c..9147d9d527 100644 --- a/spring-integration-file/src/main/java/org/springframework/integration/file/remote/RemoteFileUtils.java +++ b/spring-integration-file/src/main/java/org/springframework/integration/file/remote/RemoteFileUtils.java @@ -32,7 +32,9 @@ import org.springframework.integration.file.remote.session.Session; */ public final class RemoteFileUtils { - private RemoteFileUtils() { } + private RemoteFileUtils() { + super(); + } /** * Recursively create remote directories. @@ -43,8 +45,8 @@ public final class RemoteFileUtils { * @param logger The logger. * @throws IOException Any IOException. */ - public static void makeDirectories(String path, Session session, String remoteFileSeparator, Log logger) - throws IOException { + public static synchronized void makeDirectories(String path, Session session, String remoteFileSeparator, + Log logger) throws IOException { if (!session.exists(path)) {