From 784068346df62225661d9ce1bbd1a32a1fddde66 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 30 Sep 2009 15:04:31 +0000 Subject: [PATCH] PathMatchingResourcePatternResolver leniently ignores non-existing root directories --- .../PathMatchingResourcePatternResolver.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/org.springframework.core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java b/org.springframework.core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java index 642c3317d7..b2886bdad6 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java +++ b/org.springframework.core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java @@ -570,9 +570,19 @@ public class PathMatchingResourcePatternResolver implements ResourcePatternResol * @throws IOException if directory contents could not be retrieved */ protected Set retrieveMatchingFiles(File rootDir, String pattern) throws IOException { + if (!rootDir.exists()) { + // Silently skip non-existing directories. + if (logger.isDebugEnabled()) { + logger.debug("Skipping [" + rootDir.getAbsolutePath() + "] because it does not exist"); + } + return Collections.emptySet(); + } if (!rootDir.isDirectory()) { - throw new IllegalStateException( - "Resource path [" + rootDir.getAbsolutePath() + "] does not denote a directory"); + // Complain louder if it exists but is no directory. + if (logger.isWarnEnabled()) { + logger.warn("Skipping [" + rootDir.getAbsolutePath() + "] because it does not denote a directory"); + } + return Collections.emptySet(); } if (!rootDir.canRead()) { if (logger.isWarnEnabled()) {