You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@creadur.apache.org by po...@apache.org on 2017/10/07 22:03:20 UTC
svn commit: r1811451 -
/creadur/rat/trunk/apache-rat-core/src/main/java/org/apache/rat/Report.java
Author: pottlinger
Date: Sat Oct 7 22:03:20 2017
New Revision: 1811451
URL: http://svn.apache.org/viewvc?rev=1811451&view=rev
Log:
RAT-240: Do not stop execution if given pattern is invalid
* Continue execution of CLI run in case of illegal patterns
* Extract pattern extraction to allow easier testing
Modified:
creadur/rat/trunk/apache-rat-core/src/main/java/org/apache/rat/Report.java
Modified: creadur/rat/trunk/apache-rat-core/src/main/java/org/apache/rat/Report.java
URL: http://svn.apache.org/viewvc/creadur/rat/trunk/apache-rat-core/src/main/java/org/apache/rat/Report.java?rev=1811451&r1=1811450&r2=1811451&view=diff
==============================================================================
--- creadur/rat/trunk/apache-rat-core/src/main/java/org/apache/rat/Report.java (original)
+++ creadur/rat/trunk/apache-rat-core/src/main/java/org/apache/rat/Report.java Sat Oct 7 22:03:20 2017
@@ -20,10 +20,7 @@ package org.apache.rat;
import org.apache.commons.cli.*;
import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.filefilter.NotFileFilter;
-import org.apache.commons.io.filefilter.OrFileFilter;
-import org.apache.commons.io.filefilter.RegexFileFilter;
-import org.apache.commons.io.filefilter.WildcardFileFilter;
+import org.apache.commons.io.filefilter.*;
import org.apache.rat.api.RatException;
import org.apache.rat.report.IReportable;
import org.apache.rat.report.RatReport;
@@ -37,6 +34,7 @@ import org.apache.rat.walker.DirectoryWa
import javax.xml.transform.TransformerConfigurationException;
import java.io.*;
import java.util.List;
+import java.util.regex.PatternSyntaxException;
public class Report {
@@ -86,12 +84,7 @@ public class Report {
} else if (cl.hasOption(EXCLUDE_FILE_CLI)) {
String excludeFileName = cl.getOptionValue(EXCLUDE_FILE_CLI);
if (excludeFileName != null) {
- List<String> excludes = FileUtils.readLines(new File(excludeFileName));
- final OrFileFilter orFilter = new OrFileFilter();
- for (String exclude : excludes) {
- orFilter.addFileFilter(new RegexFileFilter(exclude));
- }
- final FilenameFilter filter = new NotFileFilter(orFilter);
+ final FilenameFilter filter = parseExclusions(FileUtils.readLines(new File(excludeFileName)));
report.setInputFileFilter(filter);
}
}
@@ -121,6 +114,18 @@ public class Report {
}
}
+ private static FilenameFilter parseExclusions(List<String> excludes) throws IOException {
+ final OrFileFilter orFilter = new OrFileFilter();
+ for (String exclude : excludes) {
+ try {
+ orFilter.addFileFilter(new RegexFileFilter(exclude));
+ } catch(PatternSyntaxException e) {
+ System.err.println("Will skip given exclusion '" + exclude + "' due to " + e);
+ }
+ }
+ return new NotFileFilter(orFilter);
+ }
+
private static Options buildOptions() {
Options opts = new Options();