[ https://jira.codehaus.org/browse/MCHECKSTYLE-205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=338941#comment-338941 ]
Chris Wesdorp edited comment on MCHECKSTYLE-205 at 1/21/14 4:04 AM: -------------------------------------------------------------------- The workaround that worked for me is to disable the inclusion of test resources. This also works for the OpenGamma project above. {noformat} <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>${maven-checkstyle-plugin.version}</version> <configuration> <includeTestResources>false</includeTestResources> </configuration> </plugin {noformat} It might have to do with the default configuration of the plugin. * includeTestResources is true by default * includeTestSourceDirectory is false by default The problem is in the CheckstyleReportListener or DefaultCheckstyleExecutor. The CheckstyleReportListener keeps track of the included source directories but for some reason the test resource folders are not added here. In the method fileStarted(AuditEvent) it gets a file that is not in the sourceDirectories list and leaves currentFile to null causing an NullPointerException in the fileFinished(AuditEvent). The DefaultCheckstyleExecutor getFilesToProcess(CheckstyleExecutorRequest) collects all the files. was (Author: chriswesdorp): The workaround that worked for me is to disable the inclusion of test resources. This also works for the OpenGamma project above. {noformat} <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>${maven-checkstyle-plugin.version}</version> <configuration> <includeTestResources>false</includeTestResources> </configuration> </plugin {noformat} It might have to do with the default configuration of the plugin. * includeTestResources is true by default * includeTestSourceDirectory is false by default The problem is in the CheckstyleReportListener (or related). This class keeps track of the included source directories but for some reason the test resource folders are not added here. In the method fileStarted(AuditEvent) it gets a file that is not in the sourceDirectories list and leaves currentFile to null causing an NullPointerException in the fileFinished(AuditEvent). > NPE in CheckstyleReportGenerator.doFilesSummary:654 version 2.11 regression > --------------------------------------------------------------------------- > > Key: MCHECKSTYLE-205 > URL: https://jira.codehaus.org/browse/MCHECKSTYLE-205 > Project: Maven Checkstyle Plugin > Issue Type: Bug > Affects Versions: 2.11, 2.12 > Environment: maven-checkstyle-plugin v2.11 and 2.12-SNAPSHOT (as of > 12/5/13). Windows 7, JDK7.45 64 bit, maven 3.1 > Reporter: Bob Fields > Attachments: CheckstyleResults.java.patch > > > This worked in release 2.10, no longer works in 2.11. Running mvn site > against a large project with a parent pom with many subprojects (though no > code in the parent project) (andromda v3.5-SNAPSHOT, from sourceforge). Maven > output: > [INFO] Generating "Checkstyle" report --- > maven-checkstyle-plugin:2.12-SNAPSHOT > [INFO] Starting audit... > ... About 6000 files ... > Audit done. > [INFO] There are 4777 checkstyle errors. > .... And no additional troubleshooting information, even in debug mode ... > [ERROR] Failed to execute goal > org.apache.maven.plugins:maven-site-plugin:3.3:site (default-site) on project > andromda: Execution default-site of goal > org.apache.maven.plugins:maven-site-plugin:3.3:site failed. > NullPointerException -> [Help 1] > Caused by: java.lang.NullPointerException > at java.lang.String.compareTo(String.java:1139) > at java.lang.String.compareTo(String.java:108) > at > java.util.ComparableTimSort.countRunAndMakeAscending(ComparableTimSort.java:290) > at java.util.ComparableTimSort.sort(ComparableTimSort.java:171) > at java.util.ComparableTimSort.sort(ComparableTimSort.java:146) > at java.util.Arrays.sort(Arrays.java:472) > at java.util.Collections.sort(Collections.java:155) > at > org.apache.maven.plugin.checkstyle.CheckstyleReportGenerator.doFilesSummary(CheckstyleReportGenerator.java:654) > at > org.apache.maven.plugin.checkstyle.CheckstyleReportGenerator.generateReport(CheckstyleReportGenerator.java:134) > I built version 2.12-SNAPSHOT locally, the NPE still exists. Running with > version 2.10 - no NPE. The code attempts to run Collections.sort on a null > key in the ArrayList from checkstyle results.getFiles().keySet(). This area > of code was not modified in any of the previous revisions going into release > 2.11. The results Collection is populated from > DefaultCheckstyleExecutor.executeChecks calling sinkListener.addDirectory, > but that method code also did not change over the last year. > This bug prevents us from using the latest checkstyle version. If the stack > trace isn't enough to be able to add an extra null value check in > executeChecks, I could run in debug mode and figure where the difference in > values from 2.10 and 2.11 comes from, but it may be a little while before I > can get to that. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira