GH-9684: Auto-create temporary remote directory
Fixes: #9684 Issue link: https://github.com/spring-projects/spring-integration/issues/9684 The `RemoteFileTemplate` is missing to create a temporary remote directory * Fix `RemoteFileTemplate.sendFileToRemoteDirectory()` to create a `temporaryRemoteDirectory` as well if it is different from already created `remoteDirectory` * Add `SftpServerOutboundTests.autoCreateTemporaryDirectory()` to verify that `temporaryRemoteDirectory` is created and in-use * Some other `SftpServerOutboundTests` refactoring for better code style **Auto-cherry-pick to `6.3.x`**
This commit is contained in:
@@ -570,10 +570,17 @@ public class RemoteFileTemplate<F> implements RemoteFileOperations<F>, Initializ
|
||||
if (this.autoCreateDirectory) {
|
||||
try {
|
||||
RemoteFileUtils.makeDirectories(remoteDirectory, session, this.remoteFileSeparator, this.logger);
|
||||
if (!temporaryRemoteDirectory.equals(remoteDirectory)) {
|
||||
RemoteFileUtils.makeDirectories(temporaryRemoteDirectory, session, this.remoteFileSeparator,
|
||||
this.logger);
|
||||
}
|
||||
}
|
||||
catch (@SuppressWarnings("unused") IllegalStateException e) {
|
||||
// Revert to old FTP behavior if recursive mkdir fails, for backwards compatibility
|
||||
session.mkdir(remoteDirectory);
|
||||
if (!temporaryRemoteDirectory.equals(remoteDirectory)) {
|
||||
session.mkdir(temporaryRemoteDirectory);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user