sonar-jdepend-plugin icon indicating copy to clipboard operation
sonar-jdepend-plugin copied to clipboard

After activating jDepend in Sonar, we get "Can not add the same measure twice"

Open beyerjsb opened this issue 7 years ago • 1 comments

Hi,

we are using SonarQube Community 7.2.1 at the moment with pretty much everything Java activated (except jDepend). Our project is a multi-module Maven/Tycho project. Without jDepend, the Sonar runs work without problems. With jDepend plugin (1.1.1) installed and all rules added to the Profile, maven sonar:sonar quits after about 25% with the following:

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.1.1168:sonar (default-cli) on project xxx: Can not add the same measure twice on %projectname%/src/%packagename%/package-info.java: DefaultMeasure[component=%projectname%/src/%packagename%/package-info.java,metric=Metric[id=,key=number-of-classes-and-interfaces,description=,type=INT,direction=0,domain=Jdepend,name=Number of classes and interfaces,qualitative=false,userManaged=false,enabled=true,worstValue=,bestValue=,optimizedBestValue=false,hidden=false,deleteHistoricalData=false,decimalScale=],value=5,fromCore=false] at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288) at org.apache.maven.cli.MavenCli.main (MavenCli.java:192) 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:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356) Caused by: org.apache.maven.plugin.MojoExecutionException: Can not add the same measure twice on %projectname%/src/%packagename%/package-info.java: DefaultMeasure[component=%projectname%/src/%packagename%/package-info.java,metric=Metric[id=,key=number-of-classes-and-interfaces,description=,type=INT,direction=0,domain=Jdepend,name=Number of classes and interfaces,qualitative=false,userManaged=false,enabled=true,worstValue=,bestValue=,optimizedBestValue=false,hidden=false,deleteHistoricalData=false,decimalScale=],value=5,fromCore=false] at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute (ScannerBootstrapper.java:67) at org.sonarsource.scanner.maven.SonarQubeMojo.execute (SonarQubeMojo.java:104) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288) at org.apache.maven.cli.MavenCli.main (MavenCli.java:192) 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:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356) Caused by: java.lang.UnsupportedOperationException: Can not add the same measure twice on %projectname%/src/%packagename%/package-info.java: DefaultMeasure[component=%projectname%/src/%packagename%/package-info.java,metric=Metric[id=,key=number-of-classes-and-interfaces,description=,type=INT,direction=0,domain=Jdepend,name=Number of classes and interfaces,qualitative=false,userManaged=false,enabled=true,worstValue=,bestValue=,optimizedBestValue=false,hidden=false,deleteHistoricalData=false,decimalScale=],value=5,fromCore=false] at org.sonar.scanner.sensor.DefaultSensorStorage.saveMeasure (DefaultSensorStorage.java:270) at org.sonar.scanner.sensor.DefaultSensorStorage.store (DefaultSensorStorage.java:214) at org.sonar.api.batch.sensor.measure.internal.DefaultMeasure.doSave (DefaultMeasure.java:95) at org.sonar.api.batch.sensor.internal.DefaultStorable.save (DefaultStorable.java:45) at nl.futureedge.sonar.plugin.jdepend.rules.NumberOfClassesAndInterfacesRule.execute (NumberOfClassesAndInterfacesRule.java:58) at nl.futureedge.sonar.plugin.jdepend.sensor.JdependSensor.execute (JdependSensor.java:76) at org.sonar.scanner.sensor.SensorWrapper.analyse (SensorWrapper.java:53) at org.sonar.scanner.phases.SensorsExecutor.executeSensor (SensorsExecutor.java:88) at org.sonar.scanner.phases.SensorsExecutor.execute (SensorsExecutor.java:82) at org.sonar.scanner.phases.SensorsExecutor.execute (SensorsExecutor.java:68) at org.sonar.scanner.phases.AbstractPhaseExecutor.execute (AbstractPhaseExecutor.java:88) at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart (ModuleScanContainer.java:182) at org.sonar.core.platform.ComponentContainer.startComponents (ComponentContainer.java:136) at org.sonar.core.platform.ComponentContainer.execute (ComponentContainer.java:122) at org.sonar.scanner.scan.ProjectScanContainer.scan (ProjectScanContainer.java:312) at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively (ProjectScanContainer.java:307) at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively (ProjectScanContainer.java:305) at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively (ProjectScanContainer.java:305) at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart (ProjectScanContainer.java:281) at org.sonar.core.platform.ComponentContainer.startComponents (ComponentContainer.java:136) at org.sonar.core.platform.ComponentContainer.execute (ComponentContainer.java:122) at org.sonar.scanner.task.ScanTask.execute (ScanTask.java:48) at org.sonar.scanner.task.TaskContainer.doAfterStart (TaskContainer.java:81) at org.sonar.core.platform.ComponentContainer.startComponents (ComponentContainer.java:136) at org.sonar.core.platform.ComponentContainer.execute (ComponentContainer.java:122) at org.sonar.scanner.bootstrap.GlobalContainer.executeTask (GlobalContainer.java:132) at org.sonar.batch.bootstrapper.Batch.doExecuteTask (Batch.java:116) at org.sonar.batch.bootstrapper.Batch.execute (Batch.java:71) at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute (BatchIsolatedLauncher.java:46) 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:498) at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke (IsolatedLauncherProxy.java:60) at com.sun.proxy.$Proxy24.execute (Unknown Source) at org.sonarsource.scanner.api.EmbeddedScanner.doExecute (EmbeddedScanner.java:171) at org.sonarsource.scanner.api.EmbeddedScanner.execute (EmbeddedScanner.java:128) at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute (ScannerBootstrapper.java:65) at org.sonarsource.scanner.maven.SonarQubeMojo.execute (SonarQubeMojo.java:104) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288) at org.apache.maven.cli.MavenCli.main (MavenCli.java:192) 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:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)

The output of the maven console/run just before the failure:

[INFO] ------------- Scan %projectname% [INFO] Base dir: %workdir%%projectname% [INFO] Working dir: %workdir%%projectname%\target\sonar [INFO] Source paths: .polyglot.build.properties, src [INFO] Source encoding: UTF-8, default locale: de_DE [INFO] Index files [INFO] Excluded sources: [INFO] /src-gen/** [INFO] /src-gen-*/** [INFO] /src-legacy/** [INFO] /src-thirdparty/** [INFO] 21 files indexed [INFO] 0 files ignored because of inclusion/exclusion patterns [INFO] Quality profile for java: %profilename% [INFO] Sensor JavaSquidSensor [java] [INFO] Configured Java source version (sonar.java.source): 8 [INFO] JavaClasspath initialization [INFO] JavaClasspath initialization (done) | time=16ms [INFO] JavaTestClasspath initialization [INFO] JavaTestClasspath initialization (done) | time=0ms [INFO] Java Main Files AST scan [INFO] 18 source files to be analyzed [INFO] 18/18 source files have been analyzed [INFO] Java Main Files AST scan (done) | time=1176ms [INFO] Java Test Files AST scan [INFO] 0 source files to be analyzed [INFO] 0/0 source files have been analyzed [INFO] Java Test Files AST scan (done) | time=16ms [INFO] Sensor JavaSquidSensor [java] (done) | time=1301ms [INFO] Sensor CoberturaSensor [cobertura] [WARNING] Cobertura report not found at %workdir%%projectname%\target\site\cobertura\coverage.xml [INFO] Sensor CoberturaSensor [cobertura] (done) | time=0ms [INFO] Sensor SurefireSensor [java] [INFO] parsing [%workdir%%projectname%\target\surefire-reports] [INFO] Sensor SurefireSensor [java] (done) | time=0ms [INFO] Sensor JaCoCoSensor [java] [INFO] Analysing %workdir%%projectrootname%\target\jacoco.exec [INFO] No information about coverage per test. [INFO] Sensor JaCoCoSensor [java] (done) | time=62ms [INFO] Sensor SonarJavaXmlFileSensor [java] [INFO] Sensor SonarJavaXmlFileSensor [java] (done) | time=0ms [INFO] Sensor SmellMeasuresSensor [smells] [INFO] Sensor SmellMeasuresSensor [smells] (done) | time=15ms [INFO] Sensor jDepend sensor [jdepend] [INFO] Analysing classes in %workdir%%projectname%\target\classes

We are creating the package-info.java files on the fly as described in the Workaround.

mvn -X is not really helpful for me otherwise. The project (submodule) in question is nothing special

I currently suspect a bug (in jDepend plugin, or even Sonar), but maybe this is also just an issue with our build. Any hint on what I could try? If you need any more info, I'll be happy to try to provide, but it is a closed source project, so I can not provide sources.

Thanks in advance.

beyerjsb avatar Aug 07 '18 10:08 beyerjsb

It happens to me also. And it was something that happened sudenly

sgnieto avatar Dec 17 '19 10:12 sgnieto