Uploaded image for project: 'Maven Checkstyle Plugin'
  1. Maven Checkstyle Plugin
  2. MCHECKSTYLE-205

NPE in CheckstyleReportGenerator.doFilesSummary:654 version 2.11 regression

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.11
    • 2.12
    • checkstyle:checkstyle
    • None
    • maven-checkstyle-plugin v2.11 and 2.12-SNAPSHOT (as of 12/5/13). Windows 7, JDK7.45 64 bit, maven 3.1

    Description

      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.

      Attachments

        Activity

          People

            dennisl@apache.org Dennis Lundberg
            bfields Bob Fields
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: