NPE in BatchPluginInstaller.java:103

58 views
Skip to first unread message

viachesla...@gmail.com

unread,
Feb 16, 2017, 2:01:27 PM2/16/17
to SonarQube

We just installed brand new SonarQube 6.2. I am trying to run analysis with Gradle 3.1 using this command (using latest plugin "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.2.1"):

 

./gradlew sonarqube


Skipping non-important piece, here is the 

 

It starts but then fails with NPE. Here is piece of log:


13:53:09.222 [INFO] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Executing task ':sonarqube' (up-to-date check took 0.0 secs) due to:  
Task has not declared any outputs.

13:53:09.222 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':sonarqube'.

13:53:09.289 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] keyStore is :

13:53:09.290 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] keyStore type is : jks

13:53:09.290 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] keyStore provider is :

13:53:09.290 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] init keystore

13:53:09.290 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] init keymanager of type SunX509

13:53:09.304 [INFO] [org.sonarqube.gradle.SonarQubeTask] User cache: /Users/vgarmash/.sonar/cache

13:53:09.304 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] Extract sonar-scanner-api-batch in temp...

13:53:09.312 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] Get bootstrap index...

13:53:09.313 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] Download: http://sonarqube.ecom.chewy.com/batch_bootstrap/index

13:53:09.457 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] Get bootstrap completed

13:53:09.458 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] Create isolated classloader...

13:53:09.464 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] Start temp cleaning...

13:53:09.467 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] Temp cleaning done

13:53:09.467 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] Execution getVersion

13:53:09.472 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] Execution start

13:53:09.647 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] Publish global mode

13:53:09.752 [INFO] [org.sonarqube.gradle.SonarQubeTask] Load global repositories

13:53:09.810 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] GET 200 http://sonarqube.ecom.chewy.com/batch/global | time=55ms

13:53:09.865 [INFO] [org.sonarqube.gradle.SonarQubeTask] Load global repositories (done) | time=114ms

13:53:09.883 [INFO] [org.sonarqube.gradle.SonarQubeTask] User cache: /Users/vgarmash/.sonar/cache

13:53:10.102 [INFO] [org.sonarqube.gradle.SonarQubeTask] Load plugins index

13:53:10.108 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] GET 200 http://sonarqube.ecom.chewy.com/deploy/plugins/index.txt | time=6ms

13:53:10.109 [INFO] [org.sonarqube.gradle.SonarQubeTask] Load plugins index (done) | time=6ms

13:53:10.109 [DEBUG] [org.sonarqube.gradle.SonarQubeTask] Load plugins

13:53:10.110 [DEBUG] [org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter] Removed task artifact state for {} from context.

13:53:10.110 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':sonarqube'

13:53:10.110 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] :sonarqube FAILED

13:53:10.111 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :sonarqube (Thread[Daemon worker,5,main]) completed. Took 0.998 secs.

13:53:10.111 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationWorkerRegistry] Worker root.48 completed (0 in use)

13:53:10.111 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[Daemon worker,5,main]] finished, busy: 2 mins 39.516 secs, idle: 0.019 secs

13:53:10.120 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]

13:53:10.123 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.

13:53:10.124 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]

13:53:10.124 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:

13:53:10.124 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Execution failed for task ':sonarqube'.

13:53:10.125 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > java.lang.NullPointerException (no error message)


...


 Caused by: java.lang.NullPointerException

13:53:10.141 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.sonar.scanner.bootstrap.BatchPluginInstaller.download(BatchPluginInstaller.java:103)

13:53:10.141 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.sonar.scanner.bootstrap.BatchPluginInstaller.loadPlugins(BatchPluginInstaller.java:80)

13:53:10.142 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.sonar.scanner.bootstrap.BatchPluginInstaller.installRemotes(BatchPluginInstaller.java:70)

13:53:10.142 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.sonar.scanner.bootstrap.BatchPluginRepository.start(BatchPluginRepository.java:53)

13:53:10.142 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110)

13:53:10.142 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89)

13:53:10.142 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.sonar.core.platform.ComponentContainer$1.start(ComponentContainer.java:320)

13:53:10.142 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84)

13:53:10.143 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169)

13:53:10.143 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132)

13:53:10.143 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.picocontainer.behaviors.Stored.start(Stored.java:110)

13:53:10.143 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1016)

13:53:10.143 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1009)

13:53:10.143 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767)

13:53:10.143 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:141)

13:53:10.144 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.sonar.batch.bootstrapper.Batch.start(Batch.java:100)

13:53:10.144 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.sonar.batch.bootstrapper.Batch.start(Batch.java:89)

13:53:10.144 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.start(BatchIsolatedLauncher.java:52)

13:53:10.144 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)

13:53:10.144 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at com.sun.proxy.$Proxy72.start(Unknown Source)

13:53:10.144 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.sonarsource.scanner.api.EmbeddedScanner.doStart(EmbeddedScanner.java:220)

13:53:10.144 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.sonarsource.scanner.api.EmbeddedScanner.start(EmbeddedScanner.java:156)

13:53:10.144 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.sonarqube.gradle.SonarQubeTask.run(SonarQubeTask.java:92)

13:53:10.144 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]   at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)


 

I tried to download and run sonar-scanner CLI but it failed with the same NPE.

 

Nullpointer usually means that you never imagined the error happening at this point.

 

 

Our server installed on CentOS Linux with Open JDK 8.

I am running analysis from Mac OS Sierra with Oracle Java JDK 8.


Please help!

Julien HENRY

unread,
Feb 20, 2017, 7:59:46 AM2/20/17
to SonarQube, viachesla...@gmail.com
Hi,

Can you manually check the response when opening http://sonarqube.ecom.chewy.com/deploy/plugins/index.txt in your web browser? Usually such error means the response was altered (by a corporate proxy or any other process on server side).

++

Julien

Viacheslav Garmash

unread,
Feb 20, 2017, 9:40:28 AM2/20/17
to Julien HENRY, SonarQube
Here is the content of http://sonarqube.ecom.chewy.com/deploy/plugins/index.txt:
css,sonar-css-plugin.jar|daecdac5122799eb4bf7e7453c25fc60
Sonargraph,sonar-sonargraph-plugin-3.5.jar|4cf8161f417979f8f50be191bfbe5aae
motionchart,sonar-motion-chart-plugin-1.7.jar|bdb198c2207ef033d6f1ee3e3eaea2b1
widgetlab,sonar-widget-lab-plugin-1.8.1.jar|9f6a4179853f4671723c7678be2a3c59
javascript,sonar-javascript-plugin-2.13.jar|951c80abcc18052c3365f1baa92785d9
tabmetrics,sonar-tab-metrics-plugin-1.4.1.jar|5657553bda730cf99041f9acf09fb4d3
javaProperties,sonar-jproperties-plugin-1.7.jar|2487e0c3fa8c91e64e415294bb15c702
java,sonar-java-plugin-3.14.jar|5776e4a16b9be85293e5abc509e3dd5e
web,sonar-web-plugin-2.4.jar|1dbfc63768da3d753a61eda6146a8f7b
xml,sonar-xml-plugin-1.4.1.jar|3c591fa8fcbf0ef13a036e7857a1b2e6
scmgit,sonar-scm-git-plugin-1.2.jar|b57acae513dee2bff1161764c6771bcb
timeline,sonar-timeline-plugin-1.5.jar|bbd6b21fb738281b5dd42e793d01bb5f
checkstyle,sonar-checkstyle-plugin-2.4.jar|b6d3b7b37e9fb46c54221fcba58f32d6

Julien HENRY

unread,
Feb 21, 2017, 8:55:09 AM2/21/17
to SonarQube, julien...@sonarsource.com, v...@garmash.name
Hi,

Everything looks good so I'm puzzled. Just check there is no trailing or leading character (using a network sniffer tool like Wireshark may be more accurate than relying on web browser).

Julien

viachesla...@gmail.com

unread,
Feb 21, 2017, 11:23:34 AM2/21/17
to SonarQube, julien...@sonarsource.com, v...@garmash.name
I tried to use "curl" command and got the same output...

I tried to debug the plugin but couldn't figure out how to hook up to the debugger.
If you know, what this code is doing, can you tell me what could be null. Is it trying to load jars from the server? What URL can I try?

Or may be you can add NPE check into this code and print more meaningful message into the log so we can mitigate the issue?

Thanks,
Slava

Julien HENRY

unread,
Feb 21, 2017, 11:32:32 AM2/21/17
to viachesla...@gmail.com, SonarQube, v...@garmash.name
OK, in fact I missed something. The response from http://sonarqube.ecom.chewy.com/deploy/plugins/index.txt doesn't look good. It seems to be from an oldest SQ installation. Please check you don't have some cache (proxy).

The expected response should contain an additional boolean field like:

++

Julien

viachesla...@gmail.com

unread,
Feb 21, 2017, 11:41:13 AM2/21/17
to SonarQube, viachesla...@gmail.com, v...@garmash.name
You are correct. I just went to the admin who installed new version of the SQ for us. He did it on the same server where we had old SQ before. It has the Nginx proxy in front and it was configured to look into old SQL installation directory. He is fixing it now and I think we should be good to go.

Although some better error message would be useful for anybody with similar misconfiguration.
Reply all
Reply to author
Forward
0 new messages