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

Site Report, Rules: Violation count incorrect for duplicate rules when one uses default severity

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Trivial
    • Resolution: Fixed
    • 2.17, 3.0.0
    • 3.1.0
    • None
    • None

    Description

      When the site report is generated, in the Rules section, the plug-in groups together the violation counts for rules that have the same name and message, but that have different severity levels – specifically where one of the rules doesn't specify a severity level and uses the default (error). This results in both rules being listed with different properties and severity levels, but with the same violation count (which is incorrect).

      Also note that adding a unique id attribute to each of the rules also does not result in the violation counts being aggregated correctly. (the proposed patch does not address this aspect).

      To be correct, the report should use the same criteria for determining unique rules as it does for aggregating the violation counts for each rule.

      A simple user work-around for some rules (such as RegexpSingleline) is to change the message property for each of the rules with different severity levels. However, this doesn't work for other rules, such as FileTabCharacter as the message property is not supported for that rule.

      I will attach a screenshot of the issue manifesting itself, and I will provide a pull request for the changes to correct the issue.

      Sample rule set showing the issue:

          <module name="FileTabCharacter">
              <property name="id" value="TabCharactersInJavaAndXmlFiles"/>
              <property name="eachLine" value="true"/>
              <property name="fileExtensions" value="java,xml"/> <!-- excludes .properties files, also see general fileExtensions property above -->
          </module>
          <module name="FileTabCharacter">
              <property name="id" value="TabCharactersInPropertiesFiles"/>
              <property name="eachLine" value="true"/>
              <property name="fileExtensions" value="properties"/>
              <property name="severity" value="info"/> <!-- only make this an information message for properties files as it may not be an issue -->
          </module>
      

      Attachments

        Issue Links

          Activity

            People

              eolivelli Enrico Olivelli
              rturner@e-djuster.com Robert Turner
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m