From 703a531cb0ad2c2cbed79e4d300384a38bb23d00 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 23 Jun 2011 14:46:41 -0400 Subject: [PATCH] INT-1936 fixed FileTransferingMessageHandler to ensure it closes the input stream in cases when Exception is thrown during session.write(..) --- .../handler/FileTransferringMessageHandler.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/spring-integration-file/src/main/java/org/springframework/integration/file/remote/handler/FileTransferringMessageHandler.java b/spring-integration-file/src/main/java/org/springframework/integration/file/remote/handler/FileTransferringMessageHandler.java index a8b07dc918..d1a5d110e2 100644 --- a/spring-integration-file/src/main/java/org/springframework/integration/file/remote/handler/FileTransferringMessageHandler.java +++ b/spring-integration-file/src/main/java/org/springframework/integration/file/remote/handler/FileTransferringMessageHandler.java @@ -196,10 +196,17 @@ public class FileTransferringMessageHandler extends AbstractMessageHandler { this.ensureDirectoryExists(session, remoteDirectory, remoteDirectory); } - session.write(fileInputStream, tempFilePath); - fileInputStream.close(); - // then rename it to its final name - session.rename(tempFilePath, remoteFilePath); + try { + session.write(fileInputStream, tempFilePath); + // then rename it to its final name + session.rename(tempFilePath, remoteFilePath); + } + catch (Exception e) { + throw new MessagingException("Failed to write to '" + tempFilePath + "' while uploading the file", e); + } + finally { + fileInputStream.close(); + } } private void ensureDirectoryExists(Session session, String remoteDirectory, String originalRemoteDirectory){