From cfd947032637d8c6d9c1d71b7ecec3985219f8f4 Mon Sep 17 00:00:00 2001 From: abilan Date: Thu, 16 Mar 2023 16:41:25 -0400 Subject: [PATCH] GH-8566: Fix `SftpSession.append()` for `Write` Fixes https://github.com/spring-projects/spring-integration/issues/8566 Turns out some SFTP servers are strict enough to not let to append into existing file if we don't give in addition a `Write` open mode flag as well **Cherry-pick to `6.0.x`** --- .../integration/sftp/session/SftpSession.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/session/SftpSession.java b/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/session/SftpSession.java index ede5b05a885..819d257b125 100644 --- a/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/session/SftpSession.java +++ b/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/session/SftpSession.java @@ -132,7 +132,10 @@ public void write(InputStream inputStream, String destination) throws IOExceptio public void append(InputStream inputStream, String destination) throws IOException { synchronized (this.sftpClient) { OutputStream outputStream = - this.sftpClient.write(destination, SftpClient.OpenMode.Create, SftpClient.OpenMode.Append); + this.sftpClient.write(destination, + SftpClient.OpenMode.Create, + SftpClient.OpenMode.Write, + SftpClient.OpenMode.Append); FileCopyUtils.copy(inputStream, outputStream); } }