Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exception thrown when Analysis Runs #519

Closed
rupreck opened this issue Apr 12, 2024 · 7 comments
Closed

Exception thrown when Analysis Runs #519

rupreck opened this issue Apr 12, 2024 · 7 comments

Comments

@rupreck
Copy link

rupreck commented Apr 12, 2024

Sonar version: 9.9.4 Enterprise
Checkstyle sonar plugin version: 10.9.3 (and also latest 10.14.2)

Steps to reproduce or description of problem:

An exception is thrown on some files where there is an @order(value=3) statement is present. For other files where there is an @order statement, the exception is not thrown. So far only the Order statement triggers it.

Here is the exception and trace:

17:23:15.5444376 - [125] - [INFO] ------------------------------------------------------------------------
17:23:15.5446622 - [126] - [INFO] BUILD FAILURE
17:23:15.5447382 - [127] - [INFO] ------------------------------------------------------------------------
17:23:15.5465937 - [128] - [INFO] Total time: 49.552 s
17:23:15.5469587 - [129] - [INFO] Finished at: 2024-04-11T17:23:15+01:00
17:23:15.5471019 - [130] - [INFO] ------------------------------------------------------------------------
17:23:15.5479748 - [131] - [ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.11.0.3922:sonar (default-cli) on project 921f0e90: Can not execute Checkstyle: Exception was thrown while processing S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\vitality\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java: NullPointerException -> [Help 1]
17:23:15.5480842 - [132] - org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.11.0.3922:sonar (default-cli) on project 921f0e90: Can not execute Checkstyle
17:23:15.5482422 - [133] - at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:333)
17:23:15.5483159 - [134] - at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
17:23:15.5483674 - [135] - at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
17:23:15.5484313 - [136] - at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
17:23:15.5484811 - [137] - at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
17:23:15.5485370 - [138] - at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
17:23:15.5485883 - [139] - at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
17:23:15.5486579 - [140] - at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
17:23:15.5487088 - [141] - at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
17:23:15.5487564 - [142] - at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
17:23:15.5488045 - [143] - at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
17:23:15.5488513 - [144] - at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
17:23:15.5488982 - [145] - at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
17:23:15.5489446 - [146] - at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
17:23:15.5489920 - [147] - at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
17:23:15.5490499 - [148] - at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
17:23:15.5490993 - [149] - at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
17:23:15.5491463 - [150] - at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
17:23:15.5492741 - [151] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
17:23:15.5494706 - [152] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
17:23:15.5496651 - [153] - at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
17:23:15.5498462 - [154] - at java.lang.reflect.Method.invoke (Method.java:566)
17:23:15.5500153 - [155] - at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
17:23:15.5501810 - [156] - at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
17:23:15.5503536 - [157] - at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
17:23:15.5505182 - [158] - at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
17:23:15.5507166 - [159] - Caused by: org.apache.maven.plugin.MojoExecutionException: Can not execute Checkstyle
17:23:15.5510720 - [160] - at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute (ScannerBootstrapper.java:90)
17:23:15.5511528 - [161] - at org.sonarsource.scanner.maven.SonarQubeMojo.execute (SonarQubeMojo.java:106)
17:23:15.5512036 - [162] - at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
17:23:15.5512515 - [163] - at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
17:23:15.5514479 - [164] - at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
17:23:15.5515024 - [165] - at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
17:23:15.5515640 - [166] - at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
17:23:15.5516140 - [167] - at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
17:23:15.5516650 - [168] - at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
17:23:15.5517256 - [169] - at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
17:23:15.5517766 - [170] - at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
17:23:15.5518236 - [171] - at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
17:23:15.5518780 - [172] - at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
17:23:15.5520443 - [173] - at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
17:23:15.5522547 - [174] - at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
17:23:15.5524542 - [175] - at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
17:23:15.5525527 - [176] - at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
17:23:15.5526208 - [177] - at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
17:23:15.5526768 - [178] - at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
17:23:15.5527385 - [179] - at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
17:23:15.5528395 - [180] - at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
17:23:15.5529882 - [181] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
17:23:15.5531946 - [182] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
17:23:15.5533836 - [183] - at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
17:23:15.5535723 - [184] - at java.lang.reflect.Method.invoke (Method.java:566)
17:23:15.5537376 - [185] - at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
17:23:15.5539250 - [186] - at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
17:23:15.5540164 - [187] - at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
17:23:15.5542050 - [188] - at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
17:23:15.5543827 - [189] - Caused by: java.lang.IllegalStateException: Can not execute Checkstyle
17:23:15.5547112 - [190] - at org.sonar.plugins.checkstyle.CheckstyleExecutor.executeWithClassLoader (CheckstyleExecutor.java:113)
17:23:15.5548526 - [191] - at org.sonar.plugins.checkstyle.CheckstyleExecutor.execute (CheckstyleExecutor.java:81)
17:23:15.5549209 - [192] - at org.sonar.plugins.checkstyle.CheckstyleSensor.execute (CheckstyleSensor.java:41)
17:23:15.5549719 - [193] - at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse (AbstractSensorWrapper.java:64)
17:23:15.5550368 - [194] - at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute (ModuleSensorsExecutor.java:88)
17:23:15.5550874 - [195] - at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1 (ModuleSensorsExecutor.java:61)
17:23:15.5551346 - [196] - at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy (ModuleSensorsExecutor.java:79)
17:23:15.5551794 - [197] - at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute (ModuleSensorsExecutor.java:61)
17:23:15.5552316 - [198] - at org.sonar.scanner.scan.SpringModuleScanContainer.doAfterStart (SpringModuleScanContainer.java:82)
17:23:15.5552964 - [199] - at org.sonar.core.platform.SpringComponentContainer.startComponents (SpringComponentContainer.java:188)
17:23:15.5554341 - [200] - at org.sonar.core.platform.SpringComponentContainer.execute (SpringComponentContainer.java:167)
17:23:15.5554873 - [201] - at org.sonar.scanner.scan.SpringProjectScanContainer.scan (SpringProjectScanContainer.java:403)
17:23:15.5555628 - [202] - at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively (SpringProjectScanContainer.java:399)
17:23:15.5556233 - [203] - at org.sonar.scanner.scan.SpringProjectScanContainer.doAfterStart (SpringProjectScanContainer.java:368)
17:23:15.5556729 - [204] - at org.sonar.core.platform.SpringComponentContainer.startComponents (SpringComponentContainer.java:188)
17:23:15.5557197 - [205] - at org.sonar.core.platform.SpringComponentContainer.execute (SpringComponentContainer.java:167)
17:23:15.5557693 - [206] - at org.sonar.scanner.bootstrap.SpringGlobalContainer.doAfterStart (SpringGlobalContainer.java:137)
17:23:15.5558190 - [207] - at org.sonar.core.platform.SpringComponentContainer.startComponents (SpringComponentContainer.java:188)
17:23:15.5558671 - [208] - at org.sonar.core.platform.SpringComponentContainer.execute (SpringComponentContainer.java:167)
17:23:15.5559161 - [209] - at org.sonar.batch.bootstrapper.Batch.doExecute (Batch.java:72)
17:23:15.5559630 - [210] - at org.sonar.batch.bootstrapper.Batch.execute (Batch.java:66)
17:23:15.5560153 - [211] - at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute (BatchIsolatedLauncher.java:46)
17:23:15.5560633 - [212] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
17:23:15.5561404 - [213] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
17:23:15.5561924 - [214] - at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
17:23:15.5562421 - [215] - at java.lang.reflect.Method.invoke (Method.java:566)
17:23:15.5562885 - [216] - at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke (IsolatedLauncherProxy.java:60)
17:23:15.5563342 - [217] - at com.sun.proxy.$Proxy28.execute (Unknown Source)
17:23:15.5563813 - [218] - at org.sonarsource.scanner.api.EmbeddedScanner.doExecute (EmbeddedScanner.java:189)
17:23:15.5564275 - [219] - at org.sonarsource.scanner.api.EmbeddedScanner.execute (EmbeddedScanner.java:138)
17:23:15.5564747 - [220] - at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute (ScannerBootstrapper.java:88)
17:23:15.5565220 - [221] - at org.sonarsource.scanner.maven.SonarQubeMojo.execute (SonarQubeMojo.java:106)
17:23:15.5565703 - [222] - at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
17:23:15.5566266 - [223] - at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
17:23:15.5567022 - [224] - at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
17:23:15.5567529 - [225] - at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
17:23:15.5568046 - [226] - at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
17:23:15.5568637 - [227] - at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
17:23:15.5569184 - [228] - at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
17:23:15.5569719 - [229] - at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
17:23:15.5570176 - [230] - at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
17:23:15.5570632 - [231] - at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
17:23:15.5571073 - [232] - at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
17:23:15.5571527 - [233] - at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
17:23:15.5573178 - [234] - at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
17:23:15.5573751 - [235] - at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
17:23:15.5574215 - [236] - at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
17:23:15.5574703 - [237] - at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
17:23:15.5575170 - [238] - at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
17:23:15.5575627 - [239] - at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
17:23:15.5576184 - [240] - at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
17:23:15.5576642 - [241] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
17:23:15.5577126 - [242] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
17:23:15.5577596 - [243] - at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
17:23:15.5578051 - [244] - at java.lang.reflect.Method.invoke (Method.java:566)
17:23:15.5578504 - [245] - at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
17:23:15.5578956 - [246] - at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
17:23:15.5579620 - [247] - at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
17:23:15.5580116 - [248] - at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
17:23:15.5580583 - [249] - Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: Exception was thrown while processing S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\vitality\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java
17:23:15.5581028 - [250] - at com.puppycrawl.tools.checkstyle.Checker.processFiles (Checker.java:306)
17:23:15.5581484 - [251] - at com.puppycrawl.tools.checkstyle.Checker.process (Checker.java:223)
17:23:15.5581934 - [252] - at org.sonar.plugins.checkstyle.CheckstyleExecutor.executeWithClassLoader (CheckstyleExecutor.java:106)
17:23:15.5582391 - [253] - at org.sonar.plugins.checkstyle.CheckstyleExecutor.execute (CheckstyleExecutor.java:81)
17:23:15.5582928 - [254] - at org.sonar.plugins.checkstyle.CheckstyleSensor.execute (CheckstyleSensor.java:41)
17:23:15.5583409 - [255] - at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse (AbstractSensorWrapper.java:64)
17:23:15.5584620 - [256] - at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute (ModuleSensorsExecutor.java:88)
17:23:15.5586374 - [257] - at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1 (ModuleSensorsExecutor.java:61)
17:23:15.5587973 - [258] - at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy (ModuleSensorsExecutor.java:79)
17:23:15.5589716 - [259] - at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute (ModuleSensorsExecutor.java:61)
17:23:15.5591341 - [260] - at org.sonar.scanner.scan.SpringModuleScanContainer.doAfterStart (SpringModuleScanContainer.java:82)
17:23:15.5593194 - [261] - at org.sonar.core.platform.SpringComponentContainer.startComponents (SpringComponentContainer.java:188)
17:23:15.5594169 - [262] - at org.sonar.core.platform.SpringComponentContainer.execute (SpringComponentContainer.java:167)
17:23:15.5595040 - [263] - at org.sonar.scanner.scan.SpringProjectScanContainer.scan (SpringProjectScanContainer.java:403)
17:23:15.5595819 - [264] - at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively (SpringProjectScanContainer.java:399)
17:23:15.5596417 - [265] - at org.sonar.scanner.scan.SpringProjectScanContainer.doAfterStart (SpringProjectScanContainer.java:368)
17:23:15.5596895 - [266] - at org.sonar.core.platform.SpringComponentContainer.startComponents (SpringComponentContainer.java:188)
17:23:15.5597377 - [267] - at org.sonar.core.platform.SpringComponentContainer.execute (SpringComponentContainer.java:167)
17:23:15.5598111 - [268] - at org.sonar.scanner.bootstrap.SpringGlobalContainer.doAfterStart (SpringGlobalContainer.java:137)
17:23:15.5599479 - [269] - at org.sonar.core.platform.SpringComponentContainer.startComponents (SpringComponentContainer.java:188)
17:23:15.5600026 - [270] - at org.sonar.core.platform.SpringComponentContainer.execute (SpringComponentContainer.java:167)
17:23:15.5600519 - [271] - at org.sonar.batch.bootstrapper.Batch.doExecute (Batch.java:72)
17:23:15.5600990 - [272] - at org.sonar.batch.bootstrapper.Batch.execute (Batch.java:66)
17:23:15.5601466 - [273] - at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute (BatchIsolatedLauncher.java:46)
17:23:15.5601931 - [274] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
17:23:15.5602394 - [275] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
17:23:15.5602867 - [276] - at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
17:23:15.5603329 - [277] - at java.lang.reflect.Method.invoke (Method.java:566)
17:23:15.5603808 - [278] - at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke (IsolatedLauncherProxy.java:60)
17:23:15.5604560 - [279] - at com.sun.proxy.$Proxy28.execute (Unknown Source)
17:23:15.5605076 - [280] - at org.sonarsource.scanner.api.EmbeddedScanner.doExecute (EmbeddedScanner.java:189)
17:23:15.5605645 - [281] - at org.sonarsource.scanner.api.EmbeddedScanner.execute (EmbeddedScanner.java:138)
17:23:15.5606251 - [282] - at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute (ScannerBootstrapper.java:88)
17:23:15.5606717 - [283] - at org.sonarsource.scanner.maven.SonarQubeMojo.execute (SonarQubeMojo.java:106)
17:23:15.5607199 - [284] - at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
17:23:15.5607669 - [285] - at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
17:23:15.5608130 - [286] - at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
17:23:15.5608609 - [287] - at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
17:23:15.5609075 - [288] - at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
17:23:15.5609549 - [289] - at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
17:23:15.5610265 - [290] - at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
17:23:15.5610772 - [291] - at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
17:23:15.5611242 - [292] - at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
17:23:15.5611711 - [293] - at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
17:23:15.5612174 - [294] - at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
17:23:15.5612647 - [295] - at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
17:23:15.5613112 - [296] - at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
17:23:15.5613577 - [297] - at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
17:23:15.5614054 - [298] - at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
17:23:15.5614523 - [299] - at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
17:23:15.5614991 - [300] - at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
17:23:15.5615549 - [301] - at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
17:23:15.5616170 - [302] - at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
17:23:15.5616680 - [303] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
17:23:15.5617155 - [304] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
17:23:15.5619663 - [305] - at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
17:23:15.5621396 - [306] - at java.lang.reflect.Method.invoke (Method.java:566)
17:23:15.5622382 - [307] - at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
17:23:15.5622953 - [308] - at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
17:23:15.5623451 - [309] - at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
17:23:15.5623910 - [310] - at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
17:23:15.5624377 - [311] - Caused by: java.lang.NullPointerException
17:23:15.5625067 - [312] - at com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck.isFieldDeclaration (MagicNumberCheck.java:529)
17:23:15.5625570 - [313] - at com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck.visitToken (MagicNumberCheck.java:358)
17:23:15.5626112 - [314] - at com.puppycrawl.tools.checkstyle.TreeWalker.notifyVisit (TreeWalker.java:335)
17:23:15.5626576 - [315] - at com.puppycrawl.tools.checkstyle.TreeWalker.processIter (TreeWalker.java:406)
17:23:15.5627020 - [316] - at com.puppycrawl.tools.checkstyle.TreeWalker.walk (TreeWalker.java:273)
17:23:15.5627455 - [317] - at com.puppycrawl.tools.checkstyle.TreeWalker.processFiltered (TreeWalker.java:154)
17:23:15.5627900 - [318] - at com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck.process (AbstractFileSetCheck.java:98)
17:23:15.5628335 - [319] - at com.puppycrawl.tools.checkstyle.Checker.processFile (Checker.java:334)
17:23:15.5628975 - [320] - at com.puppycrawl.tools.checkstyle.Checker.processFiles (Checker.java:293)
17:23:15.5629463 - [321] - at com.puppycrawl.tools.checkstyle.Checker.process (Checker.java:223)
17:23:15.5629912 - [322] - at org.sonar.plugins.checkstyle.CheckstyleExecutor.executeWithClassLoader (CheckstyleExecutor.java:106)
17:23:15.5630358 - [323] - at org.sonar.plugins.checkstyle.CheckstyleExecutor.execute (CheckstyleExecutor.java:81)
17:23:15.5630805 - [324] - at org.sonar.plugins.checkstyle.CheckstyleSensor.execute (CheckstyleSensor.java:41)
17:23:15.5631253 - [325] - at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse (AbstractSensorWrapper.java:64)
17:23:15.5631713 - [326] - at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute (ModuleSensorsExecutor.java:88)
17:23:15.5632403 - [327] - at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1 (ModuleSensorsExecutor.java:61)
17:23:15.5632905 - [328] - at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy (ModuleSensorsExecutor.java:79)
17:23:15.5633350 - [329] - at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute (ModuleSensorsExecutor.java:61)
17:23:15.5633787 - [330] - at org.sonar.scanner.scan.SpringModuleScanContainer.doAfterStart (SpringModuleScanContainer.java:82)
17:23:15.5634216 - [331] - at org.sonar.core.platform.SpringComponentContainer.startComponents (SpringComponentContainer.java:188)
17:23:15.5634658 - [332] - at org.sonar.core.platform.SpringComponentContainer.execute (SpringComponentContainer.java:167)
17:23:15.5635090 - [333] - at org.sonar.scanner.scan.SpringProjectScanContainer.scan (SpringProjectScanContainer.java:403)
17:23:15.5635522 - [334] - at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively (SpringProjectScanContainer.java:399)
17:23:15.5636058 - [335] - at org.sonar.scanner.scan.SpringProjectScanContainer.doAfterStart (SpringProjectScanContainer.java:368)
17:23:15.5636518 - [336] - at org.sonar.core.platform.SpringComponentContainer.startComponents (SpringComponentContainer.java:188)
17:23:15.5637329 - [337] - at org.sonar.core.platform.SpringComponentContainer.execute (SpringComponentContainer.java:167)
17:23:15.5637831 - [338] - at org.sonar.scanner.bootstrap.SpringGlobalContainer.doAfterStart (SpringGlobalContainer.java:137)
17:23:15.5638375 - [339] - at org.sonar.core.platform.SpringComponentContainer.startComponents (SpringComponentContainer.java:188)
17:23:15.5639676 - [340] - at org.sonar.core.platform.SpringComponentContainer.execute (SpringComponentContainer.java:167)
17:23:15.5640231 - [341] - at org.sonar.batch.bootstrapper.Batch.doExecute (Batch.java:72)
17:23:15.5640703 - [342] - at org.sonar.batch.bootstrapper.Batch.execute (Batch.java:66)
17:23:15.5641174 - [343] - at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute (BatchIsolatedLauncher.java:46)
17:23:15.5641618 - [344] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
17:23:15.5642070 - [345] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
17:23:15.5642521 - [346] - at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
17:23:15.5642950 - [347] - at java.lang.reflect.Method.invoke (Method.java:566)
17:23:15.5643683 - [348] - at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke (IsolatedLauncherProxy.java:60)
17:23:15.5644186 - [349] - at com.sun.proxy.$Proxy28.execute (Unknown Source)
17:23:15.5644626 - [350] - at org.sonarsource.scanner.api.EmbeddedScanner.doExecute (EmbeddedScanner.java:189)
17:23:15.5645058 - [351] - at org.sonarsource.scanner.api.EmbeddedScanner.execute (EmbeddedScanner.java:138)
17:23:15.5645506 - [352] - at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute (ScannerBootstrapper.java:88)
17:23:15.5646021 - [353] - at org.sonarsource.scanner.maven.SonarQubeMojo.execute (SonarQubeMojo.java:106)
17:23:15.5646480 - [354] - at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
17:23:15.5646951 - [355] - at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
17:23:15.5647442 - [356] - at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
17:23:15.5647898 - [357] - at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
17:23:15.5648445 - [358] - at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
17:23:15.5648906 - [359] - at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
17:23:15.5649680 - [360] - at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
17:23:15.5650270 - [361] - at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
17:23:15.5650795 - [362] - at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
17:23:15.5651284 - [363] - at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
17:23:15.5651769 - [364] - at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
17:23:15.5652256 - [365] - at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
17:23:15.5652705 - [366] - at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
17:23:15.5653164 - [367] - at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
17:23:15.5653647 - [368] - at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
17:23:15.5654159 - [369] - at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
17:23:15.5654679 - [370] - at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
17:23:15.5655494 - [371] - at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
17:23:15.5656176 - [372] - at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
17:23:15.5656764 - [373] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
17:23:15.5657302 - [374] - at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
17:23:15.5657822 - [375] - at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
17:23:15.5658342 - [376] - at java.lang.reflect.Method.invoke (Method.java:566)
17:23:15.5659683 - [377] - at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
17:23:15.5660333 - [378] - at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
17:23:15.5660908 - [379] - at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
17:23:15.5661521 - [380] - at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
17:23:15.5662176 - [381] - [ERROR]
17:23:15.5662880 - [382] - [ERROR] Re-run Maven using the -X switch to enable full debug logging.
17:23:15.5663549 - [383] - [ERROR]
17:23:15.5664219 - [384] - [ERROR] For more information about the errors and possible solutions, please read the following articles:
17:23:15.5665035 - [385] - [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Here is an example of a file that fails. Only by excluding the file or removing the @order statement can the analysis complete.

package uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.service.ddp.service;

import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.model.jpa.DeviceAttributeValue;
import uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.model.jpa.DeviceData;
import uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.model.dto.ddp.PointsEvent;

import java.util.LinkedHashMap;
import java.util.Map;

import static uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.service.ddp.service.AttributeUtil.parseDouble;
import static uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.service.ddp.service.AttributeUtil.parseString;


/**
 * @author XXXX
 * @since 20/01/2024
 */
@Order(value = 3)
@Component
public class ActiveDurationEventRule implements PointsEventRule {

    @Override
    public LinkedHashMap<String, PointsEvent> createEvents(Map<Long, DeviceAttributeValue> deviceAttributeValueMap, DeviceData deviceData, LinkedHashMap<String, PointsEvent> pointsEventMap) {
        Double totalSessionDurationMS = parseDouble(deviceAttributeValueMap
                .get(AttributeId.ACTIVE_DURATION.getId()));
        String manufacturer = parseString(deviceAttributeValueMap
                .get(AttributeId.DEVICE_MANUFACTURER.getId()));

        if ((totalSessionDurationMS != null)  && (manufacturer != null && manufacturer.equalsIgnoreCase("Fiit"))) {
            double sessionDurationInMinutes = totalSessionDurationMS / 60;
            if (sessionDurationInMinutes >= 20) {
                pointsEventMap.put(
                        PointsEventId.FIIT_HOME_WORKOUT_PLAN.getMnemonic(),
                        new PointsEvent(PointsEventId.FIIT_HOME_WORKOUT_PLAN
                                .getMnemonic(), deviceData.getEntityNo(), deviceData.getEventDate().toDate()));
            }
        }
        return pointsEventMap;
    }
}
@muhlba91
Copy link
Collaborator

this sounds like an issue related to the main Checkstyle project. could you try running the analysis with Checkstyle itself and not through Sonar to verify this?

@rupreck
Copy link
Author

rupreck commented Apr 12, 2024

I've tested directly with the latest checkstyle jar and it did not reappear. There was a similar failure with the sonar codehawk plugin on the above file which we removed.

This is what was run... is there an alternative way I should test this?

S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service>S:\sqa\node\tools\java\jdk17\bin\java -jar checkstyle-10.15.0-all.jar -c /sun_checks.xml ActiveDurationEventRule
Files to process must be specified, found 0.

S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service>
S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service>S:\sqa\node\tools\java\jdk17\bin\java -jar checkstyle-10.15.0-all.jar -c /sun_checks.xml ActiveDurationEventRule.java
Starting audit...
[ERROR] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:1: File does not end with a newline. [NewlineAtEndOfFile]
[ERROR] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:1: Missing package-info.java file. [JavadocPackage]
[ERROR] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:20:16: '3' is a magic number. [MagicNumber]
[ERROR] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:24:5: Class 'ActiveDurationEventRule' looks like designed for extension (can be subclassed), but the method 'createEvents' does not have javadoc that explains how to do that safely. If class is not designed for extension consider making the class 'ActiveDurationEventRule' final or making the method 'createEvents' static/final/abstract/empty, or adding allowed annotation for the method. [DesignForExtension]
[ERROR] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:25: Line is longer than 80 characters (found 191). [LineLength]
[ERROR] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:25:60: Parameter deviceAttributeValueMap should be final. [FinalParameters]
[ERROR] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:25:117: Parameter deviceData should be final. [FinalParameters]
[ERROR] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:25:140: Parameter pointsEventMap should be final. [FinalParameters]
[ERROR] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:31: Line is longer than 80 characters (found 115). [LineLength]
[ERROR] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:32:72: '60' is a magic number. [MagicNumber]
[ERROR] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:33:45: '20' is a magic number. [MagicNumber]
[ERROR] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:37: Line is longer than 80 characters (found 111). [LineLength]
Audit done.
Checkstyle ends with 12 errors.

S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service>S:\sqa\node\tools\java\jdk17\bin\java -jar checkstyle-10.15.0-all.jar -c /google_checks.xml ActiveDurationEventRule.java
Starting audit...
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:7:1: Wrong lexicographical order for 'uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.model.dto.ddp.PointsEvent' import. Should be before 'uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.model.jpa.DeviceData'. [CustomImportOrder]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:9:1: Extra separation in import group before 'java.util.LinkedHashMap' [CustomImportOrder]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:9:1: Wrong lexicographical order for 'java.util.LinkedHashMap' import. Should be before 'uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.model.jpa.DeviceData'. [CustomImportOrder]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:10:1: Wrong lexicographical order for 'java.util.Map' import. Should be before 'uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.model.jpa.DeviceData'. [CustomImportOrder]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:12:1: Import statement for 'uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.service.ddp.service.AttributeUtil.parseDouble' is in the wrong order. Should be in the 'STATIC' group, expecting not assigned imports on this line. [CustomImportOrder]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:13:1: Import statement for 'uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.service.ddp.service.AttributeUtil.parseString' is in the wrong order. Should be in the 'STATIC' group, expecting not assigned imports on this line. [CustomImportOrder]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:16: Summary javadoc is missing. [SummaryJavadoc]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:24:5: 'method def modifier' has incorrect indentation level 4, expected level should be 2. [Indentation]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:25: Line is longer than 100 characters (found 191). [LineLength]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:26:9: 'method def' child has incorrect indentation level 8, expected level should be 4. [Indentation]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:26:16: Abbreviation in name 'totalSessionDurationMS' must contain no more than '1' consecutive capital letters. [AbbreviationAsWordInName]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:28:9: 'method def' child has incorrect indentation level 8, expected level should be 4. [Indentation]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:31: Line is longer than 100 characters (found 115). [LineLength]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:31:9: 'if' has incorrect indentation level 8, expected level should be 4. [Indentation]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:32:13: 'if' child has incorrect indentation level 12, expected level should be 6. [Indentation]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:33:13: 'if' has incorrect indentation level 12, expected level should be 6. [Indentation]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:34:17: 'if' child has incorrect indentation level 16, expected level should be 8. [Indentation]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:37: Line is longer than 100 characters (found 111). [LineLength]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:38:13: 'if rcurly' has incorrect indentation level 12, expected level should be 6. [Indentation]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:39:9: 'if rcurly' has incorrect indentation level 8, expected level should be 4. [Indentation]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:40:9: 'method def' child has incorrect indentation level 8, expected level should be 4. [Indentation]
[WARN] S:\s\131675\V126\vps-pm-vdp-events-service.git\service\src\main\java\uk\co\XXX\msa\vpspointsmanager\vpspmvdpeventsservice\service\ddp\service\ActiveDurationEventRule.java:41:5: 'method def rcurly' has incorrect indentation level 4, expected level should be 2. [Indentation]
Audit done.

@Bananeweizen
Copy link
Contributor

@rnveach The nested exception in the above stack trace is interesting:

17:23:15.5624377 - [311] - Caused by: java.lang.NullPointerException
17:23:15.5625067 - [312] - at com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck.isFieldDeclaration (MagicNumberCheck.java:529)
17:23:15.5625570 - [313] - at com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck.visitToken (MagicNumberCheck.java:358)
17:23:15.5626112 - [314] - at com.puppycrawl.tools.checkstyle.TreeWalker.notifyVisit (TreeWalker.java:335)
17:23:15.5626576 - [315] - at com.puppycrawl.tools.checkstyle.TreeWalker.processIter (TreeWalker.java:406)
17:23:15.5627020 - [316] - at com.puppycrawl.tools.checkstyle.TreeWalker.walk (TreeWalker.java:273)

Going back through the call stack here means that the TreeWalker gives a null AST element to the MagicNumberCheck, see https://github.com/checkstyle/checkstyle/blob/7b8d368e130ebd3623838db1c24ecc93bcdd7d29/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/MagicNumberCheck.java#L529 and go back according to stack trace. Are you aware of any bug in 10.9.3 that would cause such a null AST element visit?
I would expect that such a situation must not happen and should even be handled in TreeWalker already.

@rnveach
Copy link
Member

rnveach commented Apr 12, 2024

We are on 10.15 right now. 10.9.3 was a year ago. I don't remember the specifics from back then.

https://checkstyle.org/releasenotes.html
MagicNumber was modified in this release, checkstyle/checkstyle#12687 .

If someone could provide the reproducible config and Java file then it can be determined if this is still an issue in the current release and file a bug report for it. I see the case, sorry.

Edit: I could not reproduce the issue, even with the old release, with the Java code at #519 (comment) .
No config file was provided which may help reproduce.

@rnveach
Copy link
Member

rnveach commented Apr 12, 2024

Are you aware of any bug in 10.9.3 that would cause such a null AST element visit?

Looking at the code, if the NPE is valid, I don't think this is what is happening. isFieldDeclaration is given the AST from the visit. I assume we are getting a valid AST object. The issue is more likely at isFieldDeclaration where it is scanning the parent hierarchy. It keeps going up the parent tree until it finds a VARIABLE_DEF. In this kind of situation if the stop trigger is never met, getParent will eventually return null as it went beyond the tree limit.

findContainingConstantDef has a similar parent scan, but it has a NPE guard in the scan.

My thought is the line of code in question is @Order(value = 3). 3 is a NUM_INT so it would be stopped on this token and there is no VARIABLE_DEF here.

This is all conjecture until something is provided that is reproducible.

@rnveach
Copy link
Member

rnveach commented Apr 12, 2024

I was able to reproduce it. My assumption above was correct. I am reporting.

$ cat TestClass.java
package uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.service.ddp.service;

import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.model.jpa.DeviceAttributeValue;
import uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.model.jpa.DeviceData;
import uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.model.dto.ddp.PointsEvent;

import java.util.LinkedHashMap;
import java.util.Map;

import static uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.service.ddp.service.AttributeUtil.parseDouble;
import static uk.co.XXX.msa.vpspointsmanager.vpspmvdpeventsservice.service.ddp.service.AttributeUtil.parseString;


/**
 * @author XXXX
 * @since 20/01/2024
 */
@Order(value = 3)
@Component
public class ActiveDurationEventRule implements PointsEventRule {

    @Override
    public LinkedHashMap<String, PointsEvent> createEvents(Map<Long, DeviceAttributeValue> deviceAttributeValueMap, DeviceData deviceData, LinkedHashMap<String, PointsEvent> pointsEventMap) {
        Double totalSessionDurationMS = parseDouble(deviceAttributeValueMap
                .get(AttributeId.ACTIVE_DURATION.getId()));
        String manufacturer = parseString(deviceAttributeValueMap
                .get(AttributeId.DEVICE_MANUFACTURER.getId()));

        if ((totalSessionDurationMS != null)  && (manufacturer != null && manufacturer.equalsIgnoreCase("Fiit"))) {
            double sessionDurationInMinutes = totalSessionDurationMS / 60;
            if (sessionDurationInMinutes >= 20) {
                pointsEventMap.put(
                        PointsEventId.FIIT_HOME_WORKOUT_PLAN.getMnemonic(),
                        new PointsEvent(PointsEventId.FIIT_HOME_WORKOUT_PLAN
                                .getMnemonic(), deviceData.getEntityNo(), deviceData.getEventDate().toDate()));
            }
        }
        return pointsEventMap;
    }
}

$ cat TestConfig.xml
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
          "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
          "https://checkstyle.org/dtds/configuration_1_3.dtd">

<module name="Checker">
    <property name="charset" value="UTF-8"/>
    <property name="severity" value="warning"/>
    <property name="haltOnException" value="false"/>

    <module name="TreeWalker">
    <module name="MagicNumber">
      <property name="ignoreAnnotationElementDefaults" value="false"/>
      <property name="ignoreNumbers" value="0.99"/>
      <property name="ignoreFieldDeclaration" value="true"/>
    </module>
    </module>
</module>

$ java -jar checkstyle-10.15.0-all.jar -c TestConfig.xml TestClass.java
Starting audit...
[ERROR] TestClass.java:1: Got an exception - java.lang.NullPointerException
    at com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck.isFieldDeclaration(MagicNumberCheck.java:390)
    at com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck.visitToken(MagicNumberCheck.java:219)
    at com.puppycrawl.tools.checkstyle.TreeWalker.notifyVisit(TreeWalker.java:335)
    at com.puppycrawl.tools.checkstyle.TreeWalker.processIter(TreeWalker.java:408)
    at com.puppycrawl.tools.checkstyle.TreeWalker.walk(TreeWalker.java:273)
    at com.puppycrawl.tools.checkstyle.TreeWalker.processFiltered(TreeWalker.java:154)
    at com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck.process(AbstractFileSetCheck.java:101)
    at com.puppycrawl.tools.checkstyle.Checker.processFile(Checker.java:340)
    at com.puppycrawl.tools.checkstyle.Checker.processFiles(Checker.java:299)
    at com.puppycrawl.tools.checkstyle.Checker.process(Checker.java:226)
    at com.puppycrawl.tools.checkstyle.Main.runCheckstyle(Main.java:415)
    at com.puppycrawl.tools.checkstyle.Main.runCli(Main.java:338)
    at com.puppycrawl.tools.checkstyle.Main.execute(Main.java:195)
    at com.puppycrawl.tools.checkstyle.Main.main(Main.java:130)
[Checker]
Audit done.
Checkstyle ends with 1 errors.

@rnveach
Copy link
Member

rnveach commented Apr 12, 2024

Closing as this is not a sonar checkstyle issue. It is a checkstyle issue.

Issue can be followed at checkstyle/checkstyle#14788

This issue does not exist in checkstyle releases before 10.9.3 .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants