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

Not possible to specify useful ignoreStringsRegexp property for module name MultipleStringLiterals without error

    XMLWordPrintableJSON

Details

    Description

      The checkstyle documentation specifies this example for ignoring certain strings by regex in module MultipleStringLiterals.

          <module name="MultipleStringLiterals">
              <property name="ignoreStringsRegexp"
                        value='^(("")|(", "))$'/>
          </module>
      

      Not only does this example not work, but no useful value for this property works. Any regex that contains a double quote ("), which is required for this property to work, results in an error:

      [ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.3.0:check (checkstyle-verify-style) on project oss-parent:
      Failed during checkstyle execution: 
      Failed during checkstyle configuration: 
      unable to parse configuration stream - Element type "property" must be followed by either attribute specifications, ">" or "/>".:94:85 -> [Help 1]
      

      In addition to trying their example verbatim, I have tried all of the following, all of which result in the same error. I cannot find a workaround, so I am unable to use this property.

              <property name="ignoreStringsRegexp"
                        value='^""$' />
      
              <property name="ignoreStringsRegexp"
                        value="^&quot;&quot;$" />
      
              <property name="ignoreStringsRegexp"
                        value='^&quot;&quot;$' />
      
              <property name="ignoreStringsRegexp"
                        value="^((&quot;&quot;)|(&quot;, &quot;))$" />
      
              <property name="ignoreStringsRegexp"
                        value='^((&quot;&quot;)|(&quot;, &quot;))$' />
      
              <property name="ignoreStringsRegexp"
                        value="^(&quot;&quot;)|(&quot;, &quot;)$" />
      
              <property name="ignoreStringsRegexp"
                        value='^(&quot;&quot;)|(&quot;, &quot;)$' />
      

      The parentheses and other symbols do not appear to be a problem, because the following do not result in any errors, they're just also not useful because checkstyle won't match on them:

              <property name="ignoreStringsRegexp"
                        value='^$' />
      
              <property name="ignoreStringsRegexp"
                        value='^()$' />
      

      So it would seem that it's not possible to use legal XML techniques to insert double quotes into property values.

      Attachments

        Activity

          People

            Unassigned Unassigned
            beamerblvd Nick Williams
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: