2015-07-09 6 views
1

Я запускаю исключение nullpointer при запуске анализа проекта java.SonarQube Nullpointer при анализе, отсутствующих параметрах полей или правил

Условие, которое вызывает сбой анализа, происходит только при активации определенных правил в профиле качества. В частности, любое правило, которое имеет параметр, который вы можете переопределить, вызывает сбой nullpointer. Он не работает, если я предоставляю значение переопределения или если параметр оставлен по умолчанию.

Следует отметить, что я могу получить успешный анализ для завершения, если эти особые правила дезактивированы в профиле качества. Это похоже только на некоторые правила, которые имеют параметры.

Я могу реплицировать эту ошибку Nullpointer как сонарником, так и плагином org.sonarqube gradle (v 1.0). Поэтому я подозреваю, что это не проблема с бегуном или плагином, но проблема с настройкой сервера SonarQube и/или базы данных.

Проблема в том, что я не знаю, как это сделать и решить эту проблему. База данных SonarQube не документирована (что я знаю) Я подозреваю, что в базе данных что-то может отсутствовать, но я даже не уверен, где они могут быть.

Любые предложения о том, где я могу посмотреть?

Версии:
SonarQube 4.5.2
SonarQube Runner 2,4
Java 1.8.0_40 Корпорация Oracle (64-разрядная версия)
Mac OS X 10.10.4 x86_64

Вот трассировка стека ошибка:

INFO: ------------------------------------------------------------------------ 
INFO: EXECUTION FAILURE 
INFO: ------------------------------------------------------------------------ 
Total time: 1:43.316s 
Final Memory: 27M/635M 
INFO: ------------------------------------------------------------------------ 
ERROR: Error during Sonar runner execution 
org.sonar.runner.impl.RunnerException: Unable to execute Sonar 
    at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91) 
    at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69) 
    at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50) 
    at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102) 
    at org.sonar.runner.api.Runner.execute(Runner.java:100) 
    at org.sonar.runner.Main.executeTask(Main.java:70) 
    at org.sonar.runner.Main.execute(Main.java:59) 
    at org.sonar.runner.Main.main(Main.java:53) 
Caused by: java.lang.NullPointerException 
    at org.sonar.api.batch.rule.Checks.getField(Checks.java:180) 
    at org.sonar.api.batch.rule.Checks.configureFields(Checks.java:167) 
    at org.sonar.api.batch.rule.Checks.instantiate(Checks.java:152) 
    at org.sonar.api.batch.rule.Checks.addAnnotatedChecks(Checks.java:127) 
    at org.sonar.java.SonarComponents.registerTestCheckClasses(SonarComponents.java:128) 
    at org.sonar.plugins.java.JavaSquidSensor.analyse(JavaSquidSensor.java:82) 
    at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:79) 
    at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:70) 
    at org.sonar.batch.phases.PhaseExecutor.execute(PhaseExecutor.java:119) 
    at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:194) 
    at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93) 
    at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78) 
    at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:233) 
    at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:228) 
    at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:221) 
    at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93) 
    at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78) 
    at org.sonar.batch.scan.ScanTask.scan(ScanTask.java:64) 
    at org.sonar.batch.scan.ScanTask.execute(ScanTask.java:51) 
    at org.sonar.batch.bootstrap.TaskContainer.doAfterStart(TaskContainer.java:125) 
    at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93) 
    at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78) 
    at org.sonar.batch.bootstrap.BootstrapContainer.executeTask(BootstrapContainer.java:173) 
    at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:95) 
    at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67) 
    at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87) 
    ... 9 more 
+0

Из-за ошибки, скорее всего, это проблема с плагином. Какие плагины вы установили. Какой из них связан с правилами, которые вы активируете для воспроизведения ошибки? –

+0

Это звучит как проблема в java-плагине. Можете ли вы рассказать нам, какую версию плагина java вы используете? Можете ли вы попробовать с последней версией (3.4)? – benzonico

+0

Благодарим за ответ, вот установленные плагины: [Java [java] 3.3. Механизм правил SonarQube] [Checkstyle [checkstyle] \t 2.3] [клевер [клевер] \t 3.0] [Cobertura [Cobertura] 1.6.3] [FindBugs [FindBugs] \t 3.2] \t [Java [Java] \t 3.3] \t [JIRA [JIRA] 1.2] \t [LDAP [LDAP ] 1.4] [PMD [pmd] \t 2.3] –

ответ

1

Мы решили проблему, и проблема была действительно плагином Java на сервере SonarQube. Однако решение было понизить плагин Java. Вот версии, в которых мы закончили:

  • Checkstyle [checkstyle] 2.2 Анализ кода Java с помощью Checkstyle.
  • Clover [clover] 3.0 Получите покрытие кода с помощью Atlassian Clover.
  • Cobertura [cobertura] 1.6.3 Получите покрытие кода с Cobertura.
  • Findbugs [findbugs] 3.1 Анализ кода Java с помощью Findbugs 3.0.0.
  • Java [java] 2.9.1 Двигатель управления SonarQube.
  • JIRA [jira] 1.2 Соединяет SonarQube с Atlassian JIRA различными способами.
  • LDAP [ldap] 1.4 Делегирует аутентификацию в LDAP.
  • PMD [pmd] 2.3 Анализ кода Java с PMD.