[ 
https://issues.apache.org/jira/browse/MCHECKSTYLE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16266109#comment-16266109
 ] 

Robert Scholte commented on MCHECKSTYLE-345:
--------------------------------------------

When running Maven with an additional {{-e}} you'll see the following 
stacktrace:
{noformat}
Caused by: java.lang.NullPointerException
    at 
com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck.isSingleLineFor 
(NeedBracesCheck.java:286)
    at 
com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck.isSingleLineStatement
 (NeedBracesCheck.java:203)
    at 
com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck.isSkipStatement 
(NeedBracesCheck.java:177)
    at com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck.visitToken 
(NeedBracesCheck.java:164)
    at com.puppycrawl.tools.checkstyle.TreeWalker.notifyVisit 
(TreeWalker.java:388)
    at com.puppycrawl.tools.checkstyle.TreeWalker.processIter 
(TreeWalker.java:499)
    at com.puppycrawl.tools.checkstyle.TreeWalker.walk (TreeWalker.java:330)
    at com.puppycrawl.tools.checkstyle.TreeWalker.processFiltered 
(TreeWalker.java:203)
    at com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck.process 
(AbstractFileSetCheck.java:79)
    at com.puppycrawl.tools.checkstyle.Checker.process (Checker.java:265)
    at 
org.apache.maven.plugin.checkstyle.exec.DefaultCheckstyleExecutor.executeCheckstyle
 (DefaultCheckstyleExecutor.java:252)
{noformat}

This shows that it is not the maven-plugin, but Checkstyle causes the NPE. 
Please visit http://checkstyle.sourceforge.net/ and file your issue there.

> Checkstyle crashes on NPE when for loop without braces has direct if with 
> braces
> --------------------------------------------------------------------------------
>
>                 Key: MCHECKSTYLE-345
>                 URL: https://issues.apache.org/jira/browse/MCHECKSTYLE-345
>             Project: Maven Checkstyle Plugin
>          Issue Type: Bug
>    Affects Versions: 2.17
>         Environment: ubuntu 16.04, confirmed on windows 10 too
>            Reporter: Marek Sabo
>              Labels: build
>         Attachments: issue-NPE-project.zip
>
>   Original Estimate: 128h
>  Remaining Estimate: 128h
>
> Hello,
> I would like to inform you that the following code causes checkstyle to crash:
> {code:java}
> class Demo {
>     public static void main(String[] args) {
>         for (int i = 0; i < 5; i++)
>             if (1 < 2) {
>                 System.out.println("Multiple line if block");
>             }
>     }
> }
> {code}
> It happens when an `for` loop without braces contains nested `if` with curly 
> braces inside.
> $ mvn clean install          
> {code:txt}
> [INFO] Scanning for projects...
> [INFO]                                                                        
>  
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Building temp 1.0-SNAPSHOT
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] 
> [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ temp ---
> [INFO] Deleting /home/mrek/temp/temp/target
> [INFO] 
> [INFO] --- maven-checkstyle-plugin:2.17:check (validate) @ temp ---
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time: 1.856 s
> [INFO] Finished at: 2017-11-26T17:26:49+01:00
> [INFO] Final Memory: 12M/195M
> [INFO] 
> ------------------------------------------------------------------------
> [ERROR] Failed to execute goal 
> org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check (validate) on 
> project temp: Execution validate of goal 
> org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check failed. 
> NullPointerException -> [Help 1]
> [ERROR] 
> [ERROR] To see the full stack trace of the errors, re-run Maven with the -e 
> switch.
> [ERROR] Re-run Maven using the -X switch to enable full debug logging.
> [ERROR] 
> [ERROR] For more information about the errors and possible solutions, please 
> read the following articles:
> [ERROR] [Help 1] 
> http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
> {code}
> Although I can agree that the code above is not nice at all, it is definitely 
> a bug.
> I can agree that the best way to avoid it is to to not write code like this 
> at all, but our students sometimes write code like this and then they have 
> surely no idea why the build is failing.
> Please see the simple project in the attachment (just this Demo.java with pom 
> and config).
> I am also adding output of those files:
> config.xml
> {code:xml}
> <?xml version="1.0"?>
> <!DOCTYPE module PUBLIC
>         "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
>         "http://www.puppycrawl.com/dtds/configuration_1_3.dtd";>
> <module name="Checker">
>     <module name="TreeWalker">
>         <module name="NeedBraces">
>             <property name="allowSingleLineStatement" value="true"/>
>         </module>
>     </module>
> </module>
> <?xml version="1.0"?>
> <!DOCTYPE module PUBLIC
>         "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
>         "http://www.puppycrawl.com/dtds/configuration_1_3.dtd";>
> <module name="Checker">
>     <module name="TreeWalker">
>         <module name="NeedBraces">
>             <property name="allowSingleLineStatement" value="true"/>
>         </module>
>     </module>
> </module>
> {code}
> pom.xml
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <project xmlns="http://maven.apache.org/POM/4.0.0";
>          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> http://maven.apache.org/xsd/maven-4.0.0.xsd";>
>     <modelVersion>4.0.0</modelVersion>
>     <groupId>temp</groupId>
>     <artifactId>temp</artifactId>
>     <version>1.0-SNAPSHOT</version>
>     <build>
>         <plugins>
>             <plugin>
>                 <groupId>org.apache.maven.plugins</groupId>
>                 <artifactId>maven-checkstyle-plugin</artifactId>
>                 <version>2.17</version>
>                 <executions>
>                     <execution>
>                         <id>validate</id>
>                         <phase>validate</phase>
>                         <configuration>
>                             <configLocation>config.xml</configLocation>
>                         </configuration>
>                         <goals>
>                             <goal>check</goal>
>                         </goals>
>                     </execution>
>                 </executions>
>             </plugin>
>         </plugins>
>     </build>
> </project>
> {code}
> I hope it is an easy fix and could be resolved!
> Thank you,
> Marek



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to