[ 
https://issues.apache.org/jira/browse/RAT-238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16210041#comment-16210041
 ] 

Philipp Ottlinger commented on RAT-238:
---------------------------------------

Thanks for your bug report .... the exception is thrown in a very low level 
part of RAT.

Would you mind skipping the error such as with the help of:
{code}
Index: 
apache-rat-core/src/main/java/org/apache/rat/analysis/DocumentHeaderAnalyser.java
===================================================================
--- 
apache-rat-core/src/main/java/org/apache/rat/analysis/DocumentHeaderAnalyser.java
   (Revision 1812235)
+++ 
apache-rat-core/src/main/java/org/apache/rat/analysis/DocumentHeaderAnalyser.java
   (Arbeitskopie)
@@ -15,7 +15,7 @@
  * KIND, either express or implied.  See the License for the    *
  * specific language governing permissions and limitations      *
  * under the License.                                           *
- */ 
+ */
 package org.apache.rat.analysis;
 
 import org.apache.commons.io.IOUtils;
@@ -23,6 +23,7 @@
 import org.apache.rat.document.IDocumentAnalyser;
 import org.apache.rat.document.RatDocumentAnalysisException;
 
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.Reader;
 
@@ -29,7 +30,7 @@
 public class DocumentHeaderAnalyser implements IDocumentAnalyser {
 
     private final IHeaderMatcher matcher;
-    
+
     public DocumentHeaderAnalyser(final IHeaderMatcher matcher) {
         super();
         this.matcher = matcher;
@@ -42,6 +43,9 @@
             // TODO: worker function should be moved into this class
             HeaderCheckWorker worker = new HeaderCheckWorker(reader, matcher, 
document);
             worker.read();
+        } catch (FileNotFoundException e) {
+            // silently ignore FileNotFound as that indicates problems with 
the file system such as broken links
+            System.err.println("Skipping current file due to " + e + " with 
message " + e.getMessage());
         } catch (IOException e) {
             throw new RatDocumentAnalysisException("Cannot read header", e);
         } catch (RatHeaderAnalysisException e) {
@@ -49,6 +53,6 @@
         } finally {
             IOUtils.closeQuietly(reader);
         }
-     }
+    }
 
 }
{code}
as we do not have a way (yet) to transfer analysis statistics through all parts 
of RAT.

Would this help for your case?

> Broken symlinks result in crash
> -------------------------------
>
>                 Key: RAT-238
>                 URL: https://issues.apache.org/jira/browse/RAT-238
>             Project: Apache Rat
>          Issue Type: Bug
>    Affects Versions: 0.12
>            Reporter: Kim van der Riet
>
> When scanning a project directory containing a broken symlink, rat fails as 
> follows:
> {noformat}
> $ java -jar apache-rat-0.13-SNAPSHOT.jar test-dir/
> Exception in thread "main" org.apache.rat.api.RatException: Cannot read header
>       at 
> org.apache.rat.report.claim.util.ClaimReporterMultiplexer.report(ClaimReporterMultiplexer.java:44)
>       at 
> org.apache.rat.walker.DirectoryWalker.report(DirectoryWalker.java:144)
>       at 
> org.apache.rat.walker.DirectoryWalker.processNonDirectories(DirectoryWalker.java:128)
>       at 
> org.apache.rat.walker.DirectoryWalker.process(DirectoryWalker.java:98)
>       at 
> org.apache.rat.walker.DirectoryWalker.processDirectory(DirectoryWalker.java:72)
>       at 
> org.apache.rat.walker.DirectoryWalker.processDirectories(DirectoryWalker.java:113)
>       at 
> org.apache.rat.walker.DirectoryWalker.process(DirectoryWalker.java:99)
>       at 
> org.apache.rat.walker.DirectoryWalker.processDirectory(DirectoryWalker.java:72)
>       at 
> org.apache.rat.walker.DirectoryWalker.processDirectories(DirectoryWalker.java:113)
>       at 
> org.apache.rat.walker.DirectoryWalker.process(DirectoryWalker.java:99)
>       at 
> org.apache.rat.walker.DirectoryWalker.processDirectory(DirectoryWalker.java:72)
>       at 
> org.apache.rat.walker.DirectoryWalker.processDirectories(DirectoryWalker.java:113)
>       at 
> org.apache.rat.walker.DirectoryWalker.process(DirectoryWalker.java:99)
>       at 
> org.apache.rat.walker.DirectoryWalker.processDirectory(DirectoryWalker.java:72)
>       at 
> org.apache.rat.walker.DirectoryWalker.processDirectories(DirectoryWalker.java:113)
>       at 
> org.apache.rat.walker.DirectoryWalker.process(DirectoryWalker.java:99)
>       at org.apache.rat.walker.DirectoryWalker.run(DirectoryWalker.java:83)
>       at org.apache.rat.Report.report(Report.java:423)
>       at org.apache.rat.Report.report(Report.java:402)
>       at org.apache.rat.Report.report(Report.java:378)
>       at org.apache.rat.Report.styleReport(Report.java:359)
>       at org.apache.rat.Report.main(Report.java:119)
> Caused by: org.apache.rat.document.RatDocumentAnalysisException: Cannot read 
> header
>       at 
> org.apache.rat.analysis.DocumentHeaderAnalyser.analyse(DocumentHeaderAnalyser.java:46)
>       at 
> org.apache.rat.analysis.DefaultAnalyserFactory$DefaultAnalyser.analyse(DefaultAnalyserFactory.java:60)
>       at 
> org.apache.rat.document.impl.util.DocumentAnalyserMultiplexer.analyse(DocumentAnalyserMultiplexer.java:36)
>       at 
> org.apache.rat.report.claim.util.ClaimReporterMultiplexer.report(ClaimReporterMultiplexer.java:42)
>       ... 21 more
> Caused by: java.io.FileNotFoundException: test-dir/dirA/dirB/broken-symlink 
> (No such file or directory)
>       at java.io.FileInputStream.open0(Native Method)
>       at java.io.FileInputStream.open(FileInputStream.java:195)
>       at java.io.FileInputStream.<init>(FileInputStream.java:138)
>       at java.io.FileReader.<init>(FileReader.java:72)
>       at 
> org.apache.rat.document.impl.FileDocument.reader(FileDocument.java:52)
>       at 
> org.apache.rat.analysis.DocumentHeaderAnalyser.analyse(DocumentHeaderAnalyser.java:41)
>       ... 24 more
> {noformat}
> Perhaps broken symlinks should be reported and/or ignored.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to