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
(cherry picked from commit a4b193fa64)
This commit is contained in:
committed by
Spring Builds
parent
d8fb02306f
commit
4bb46246df
@@ -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