[ https://jira.codehaus.org/browse/MCHECKSTYLE-205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=336907#comment-336907 ]
Bob Fields commented on MCHECKSTYLE-205: ---------------------------------------- Since somebody else had the same issue I decided to troubleshoot. I added a null value check on CheckstyleResults.java to make sure no invalid data gets added to the results list (null key). This fixes the immediate problem (NPE which kills the site build) but doesn't fix the underlying issue (checkstyle listener attempting to add a null value to the results list). Nevertheless, a null value check certainly doesn't hurt. Patch with about 4 lines of code added is attached, against 2.12-SNAPSHOT as of 12/6/2013. Sorry, no additional unit tests, that would take quite a while to reproduce this behavior in a new project. The issue only occurs when running checkstyle-aggregate report, not when running checkstyle goal. > 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 > > 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