diff --git a/spring-integration-file/src/main/java/org/springframework/integration/file/FileWritingMessageHandler.java b/spring-integration-file/src/main/java/org/springframework/integration/file/FileWritingMessageHandler.java index a4c11a2ffb..9e881a7ad0 100644 --- a/spring-integration-file/src/main/java/org/springframework/integration/file/FileWritingMessageHandler.java +++ b/spring-integration-file/src/main/java/org/springframework/integration/file/FileWritingMessageHandler.java @@ -525,8 +525,9 @@ public class FileWritingMessageHandler extends AbstractReplyProducingMessageHand @Override protected void whileLocked() throws IOException { - BufferedOutputStream bos = state != null ? state.stream : createOutputStream(fileToWriteTo, true); + BufferedOutputStream bos = null; try { + bos = state != null ? state.stream : createOutputStream(fileToWriteTo, true); byte[] buffer = new byte[StreamUtils.BUFFER_SIZE]; int bytesRead = -1; while ((bytesRead = sourceFileInputStream.read(buffer)) != -1) { @@ -544,7 +545,9 @@ public class FileWritingMessageHandler extends AbstractReplyProducingMessageHand } try { if (state == null || FileWritingMessageHandler.this.flushTask == null) { - bos.close(); + if (bos != null) { + bos.close(); + } clearState(fileToWriteTo, state); } else { @@ -563,9 +566,9 @@ public class FileWritingMessageHandler extends AbstractReplyProducingMessageHand } else { - BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(tempFile), this.bufferSize); - + BufferedOutputStream bos = null; try { + bos = new BufferedOutputStream(new FileOutputStream(tempFile), this.bufferSize); byte[] buffer = new byte[StreamUtils.BUFFER_SIZE]; int bytesRead = -1; while ((bytesRead = sourceFileInputStream.read(buffer)) != -1) { @@ -583,7 +586,9 @@ public class FileWritingMessageHandler extends AbstractReplyProducingMessageHand catch (IOException ex) { } try { - bos.close(); + if (bos != null) { + bos.close(); + } } catch (IOException ex) { } @@ -606,8 +611,9 @@ public class FileWritingMessageHandler extends AbstractReplyProducingMessageHand @Override protected void whileLocked() throws IOException { - BufferedOutputStream bos = state != null ? state.stream : createOutputStream(fileToWriteTo, append); + BufferedOutputStream bos = null; try { + bos = state != null ? state.stream : createOutputStream(fileToWriteTo, append); bos.write(bytes); if (FileWritingMessageHandler.this.appendNewLine) { bos.write(LINE_SEPARATOR.getBytes()); @@ -616,7 +622,9 @@ public class FileWritingMessageHandler extends AbstractReplyProducingMessageHand finally { try { if (state == null || FileWritingMessageHandler.this.flushTask == null) { - bos.close(); + if (bos != null) { + bos.close(); + } clearState(fileToWriteTo, state); } else { @@ -647,8 +655,9 @@ public class FileWritingMessageHandler extends AbstractReplyProducingMessageHand @Override protected void whileLocked() throws IOException { - BufferedWriter writer = state != null ? state.writer : createWriter(fileToWriteTo, append); + BufferedWriter writer = null; try { + writer = state != null ? state.writer : createWriter(fileToWriteTo, append); writer.write(content); if (FileWritingMessageHandler.this.appendNewLine) { writer.newLine(); @@ -657,7 +666,9 @@ public class FileWritingMessageHandler extends AbstractReplyProducingMessageHand finally { try { if (state == null || FileWritingMessageHandler.this.flushTask == null) { - writer.close(); + if (writer != null) { + writer.close(); + } clearState(fileToWriteTo, state); } else {