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();