diff --git a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/FileReadingMessageSource.java b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/FileReadingMessageSource.java index 55c961457e..c64bac5ffe 100644 --- a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/FileReadingMessageSource.java +++ b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/FileReadingMessageSource.java @@ -106,13 +106,19 @@ public class FileReadingMessageSource implements MessageSource, Initializi * Specify the input directory. */ public void setInputDirectory(Resource inputDirectory) { - Assert.notNull(inputDirectory, "inputDirectory cannot be null"); + Assert.notNull(inputDirectory, "inputDirectory must not be null"); try { this.inputDirectory = inputDirectory.getFile(); } - catch (IOException e) { - throw new IllegalArgumentException( + catch (IOException ioe) { + try { + // fallback to the URI + this.inputDirectory = new File(inputDirectory.getURI()); + } + catch (Exception e) { + throw new IllegalArgumentException( "Unexpected IOException when looking for source directory: " + inputDirectory, e); + } } } diff --git a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/FileWritingMessageHandler.java b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/FileWritingMessageHandler.java index e26c8e9c5f..11470c1809 100644 --- a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/FileWritingMessageHandler.java +++ b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/FileWritingMessageHandler.java @@ -77,13 +77,22 @@ public class FileWritingMessageHandler extends AbstractReplyProducingMessageHand public FileWritingMessageHandler(Resource destinationDirectory) { + Assert.notNull(destinationDirectory, "Destination directory must not be null."); + File dir = null; try { - this.destinationDirectory = destinationDirectory.getFile(); + dir = destinationDirectory.getFile(); } - catch (IOException e) { - throw new IllegalArgumentException( + catch (IOException ioe) { + try { + // fallback to the URI + dir = new File(destinationDirectory.getURI()); + } + catch (Exception e) { + throw new IllegalArgumentException( "Unexpected IOException when looking for destination directory: " + destinationDirectory, e); + } } + this.destinationDirectory = dir; }