From 92d46872c0e9fe5f0671b8fd90ca421526dfe19f Mon Sep 17 00:00:00 2001 From: Robert Gemmell Date: Thu, 21 Jul 2011 13:18:51 +0000 Subject: QPID-3367: FileUtils improvements. #openFileOrDefaultResource now tries the override filename in the classpath too, before falling back to the default. Applied patch from Keith Wall git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1149165 13f79535-47bb-0310-9956-ffa450edef68 --- .../main/java/org/apache/qpid/util/FileUtils.java | 23 +++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'java/common/src/main') diff --git a/java/common/src/main/java/org/apache/qpid/util/FileUtils.java b/java/common/src/main/java/org/apache/qpid/util/FileUtils.java index 1a57af9bf7..ac8e3da3c2 100644 --- a/java/common/src/main/java/org/apache/qpid/util/FileUtils.java +++ b/java/common/src/main/java/org/apache/qpid/util/FileUtils.java @@ -143,8 +143,9 @@ public class FileUtils } /** - * Either opens the specified filename as an input stream, or uses the default resource loaded using the - * specified class loader, if opening the file fails or no file name is specified. + * Either opens the specified filename as an input stream or either the filesystem or classpath, + * or uses the default resource loaded using the specified class loader, if opening the file fails + * or no file name is specified. * * @param filename The name of the file to open. * @param defaultResource The name of the default resource on the classpath if the file cannot be opened. @@ -156,28 +157,28 @@ public class FileUtils { InputStream is = null; - // Flag to indicate whether the default resource should be used. By default this is true, so that the default - // is used when opening the file fails. - boolean useDefault = true; - // Try to open the file if one was specified. if (filename != null) { + // try on filesystem try { is = new BufferedInputStream(new FileInputStream(new File(filename))); - - // Clear the default flag because the file was succesfully opened. - useDefault = false; } catch (FileNotFoundException e) { - // Ignore this exception, the default will be used instead. + is = null; + } + + if (is == null) + { + // failed on filesystem, so try on classpath + is = cl.getResourceAsStream(filename); } } // Load the default resource if a file was not specified, or if opening the file failed. - if (useDefault) + if (is == null) { is = cl.getResourceAsStream(defaultResource); } -- cgit v1.2.1