GH-3652: File gateway: don't try delete no file

Fixes spring-projects/spring-integration#3652

Do not try to delete non-existing file in `FileExistMode.REPLACE` in the `AbstractRemoteFileOutboundGateway`

**Cherry-pick to `5.4.x` & `5.3.x`**
This commit is contained in:
Mauro Molinari
2021-11-03 15:06:31 +01:00
committed by GitHub
parent eb4d583a17
commit 15520e120c

View File

@@ -73,6 +73,7 @@ import org.springframework.util.StringUtils;
*
* @author Gary Russell
* @author Artem Bilan
* @author Mauro Molinari
*
* @since 2.1
*/
@@ -1110,9 +1111,9 @@ public abstract class AbstractRemoteFileOutboundGateway<F> extends AbstractReply
FileExistsMode existsMode = this.fileExistsMode;
boolean appending = FileExistsMode.APPEND.equals(existsMode);
boolean exists = localFile.exists();
boolean replacing = FileExistsMode.REPLACE.equals(existsMode)
|| (exists && FileExistsMode.REPLACE_IF_MODIFIED.equals(existsMode)
&& localFile.lastModified() != getModified(fileInfo));
boolean replacing = exists && (FileExistsMode.REPLACE.equals(existsMode)
|| (FileExistsMode.REPLACE_IF_MODIFIED.equals(existsMode)
&& localFile.lastModified() != getModified(fileInfo)));
if (!exists || appending || replacing) {
OutputStream outputStream;
String tempFileName = localFile.getAbsolutePath() + this.remoteFileTemplate.getTemporaryFileSuffix();