
Author: ceki Date: Thu Aug 6 23:52:03 2009 New Revision: 2417 Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/FileFilterUtil.java logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/FileNamePattern.java logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/helper/FileNamePatternTest.java Log: - all logback-core tests pass Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/FileFilterUtil.java ============================================================================== --- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/FileFilterUtil.java (original) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/FileFilterUtil.java Thu Aug 6 23:52:03 2009 @@ -52,17 +52,20 @@ * Return the set of files matching the stemRegex as found in 'directory'. A * stemRegex does not contain any slash characters or any folder seperators. * - * @param directory + * @param file * @param stemRegex * @return */ - public static File[] filesInFolderMatchingStemRegex(File directory, + public static File[] filesInFolderMatchingStemRegex(File file, final String stemRegex) { - if (directory == null || directory.isDirectory()) { - throw new IllegalArgumentException("[" + directory - + " cannot be null or a non-directory"); + + if (file == null) { + return new File[0]; + } + if (!file.exists() || !file.isDirectory()) { + return new File[0]; } - File[] matchingFileArray = directory.listFiles(new FilenameFilter() { + File[] matchingFileArray = file.listFiles(new FilenameFilter() { public boolean accept(File dir, String name) { return name.matches(stemRegex); } @@ -71,9 +74,9 @@ } static public int extractCounter(File file, final String stemRegex) { - Pattern p = Pattern.compile(stemRegex); + Pattern p = Pattern.compile(stemRegex); String lastFileName = file.getName(); - + Matcher m = p.matcher(lastFileName); if (!m.matches()) { throw new IllegalStateException("The regex [" + stemRegex Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/FileNamePattern.java ============================================================================== --- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/FileNamePattern.java (original) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/FileNamePattern.java Thu Aug 6 23:52:03 2009 @@ -154,7 +154,7 @@ } else if (p instanceof IntegerTokenConverter) { buf.append("(\\d{1,2})"); } else if (p instanceof DateTokenConverter) { - buf.append(p.convert(date)); + buf.append(FileFilterUtil.slashify(p.convert(date))); } p = p.getNext(); } Modified: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/helper/FileNamePatternTest.java ============================================================================== --- logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/helper/FileNamePatternTest.java (original) +++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/helper/FileNamePatternTest.java Thu Aug 6 23:52:03 2009 @@ -117,13 +117,13 @@ FileNamePattern fnp = new FileNamePattern("foo-%d{yyyy.MM.dd}-%i.txt", context); String regex = fnp.toSRegex(cal.getTime()); - assertEquals("foo-2003.05.20-\\d{1,2}.txt", regex); + assertEquals("foo-2003.05.20-(\\d{1,2}).txt", regex); } { FileNamePattern fnp = new FileNamePattern("\\toto\\foo-%d{yyyy\\MM\\dd}-%i.txt", context); String regex = fnp.toSRegex(cal.getTime()); - assertEquals("/toto/foo-2003/05/20-\\d{1,2}.txt", regex); + assertEquals("/toto/foo-2003/05/20-(\\d{1,2}).txt", regex); } }