[ 
https://issues.apache.org/jira/browse/MCHECKSTYLE-442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nick Williams updated MCHECKSTYLE-442:
--------------------------------------
    Description: 
The [checkstyle 
documentation|https://checkstyle.sourceforge.io/checks/coding/multiplestringliterals.html]
 specifies this example for ignoring certain strings by regex in module 
{{MultipleStringLiterals}}.

{code:xml}
    <module name="MultipleStringLiterals">
        <property name="ignoreStringsRegexp"
                  value='^(("")|(", "))$'/>
    </module>
{code}

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:

{noformat}
[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]
{noformat}

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.

{code:xml}
        <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;)$' />
{code}

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:

{code:xml}
        <property name="ignoreStringsRegexp"
                  value='^$' />

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

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

  was:
The [checkstyle 
documentation|https://checkstyle.sourceforge.io/checks/coding/multiplestringliterals.html]
 specifies this example for ignoring certain strings by regex in module 
{{MultipleStringLiterals}}.

{code:xml}
    <module name="MultipleStringLiterals">
        <property name="ignoreStringsRegexp"
                  value='^(("")|(", "))$'/>
    </module>
{code}

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:

{noformat}
[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]
{noformat}

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.

{code:xml}
        <property name="ignoreStringsRegexp"
                  value='^""$' />

        <property name="ignoreStringsRegexp"
                  value="^&quot;&quot;$" />

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

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

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:

{code:xml}
        <property name="ignoreStringsRegexp"
                  value='^$' />

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

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


> Not possible to specify useful ignoreStringsRegexp property for module name 
> MultipleStringLiterals without error
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: MCHECKSTYLE-442
>                 URL: https://issues.apache.org/jira/browse/MCHECKSTYLE-442
>             Project: Maven Checkstyle Plugin
>          Issue Type: Bug
>          Components: checkstyle:check
>            Reporter: Nick Williams
>            Priority: Major
>
> The [checkstyle 
> documentation|https://checkstyle.sourceforge.io/checks/coding/multiplestringliterals.html]
>  specifies this example for ignoring certain strings by regex in module 
> {{MultipleStringLiterals}}.
> {code:xml}
>     <module name="MultipleStringLiterals">
>         <property name="ignoreStringsRegexp"
>                   value='^(("")|(", "))$'/>
>     </module>
> {code}
> 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:
> {noformat}
> [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]
> {noformat}
> 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.
> {code:xml}
>         <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;)$' />
> {code}
> 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:
> {code:xml}
>         <property name="ignoreStringsRegexp"
>                   value='^$' />
>         <property name="ignoreStringsRegexp"
>                   value='^()$' />
> {code}
> So it would seem that it's not possible to use legal XML techniques to insert 
> double quotes into property values.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to