Skip to content

Gradle Plugin fails with Scala 2.13.x in Multi-Project Builds #182

@rhass

Description

@rhass
  • Gradle Scoverage Plugin Version: 7.0.0
  • Scoverage Version: 1.4.11
  • Gradle Version: 7.14.2
  • Scala Version: 2.13.7
  • Java Version: 11.0.13

I originally filed this against the scalac-scoverage-plugin. As a result they have added a unit test for the .aggregate() method which this plugin calls, but it seems to pass suggesting the problem may be exist within the Gradle plugin itself.

Running aggregateScoverage with Scala 2.13 results in the following stack trace:

Caused by: java.lang.NoSuchMethodError: 'java.lang.Object scala.Predef$.refArrayOps(java.lang.Object[])' at scoverage.report.CoverageAggregator$.aggregate(CoverageAggregator.scala:18) |   -- | --   |   | at scoverage.report.CoverageAggregator.aggregate(CoverageAggregator.scala) |     |   | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) |     |   | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) |     |   | at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) |     |   | at org.scoverage.ScoverageReport$_report_closure1.doCall(ScoverageReport.groovy:51) |     |   | at org.scoverage.ScoverageReport$_report_closure1.doCall(ScoverageReport.groovy) |     |   | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) |     |   | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) |     |   | at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) |     |   | at org.scoverage.ScoverageRunner.run(ScoverageRunner.groovy:32) |     |   | at org.scoverage.ScoverageRunner$run.call(Unknown Source) |     |   | at org.scoverage.ScoverageReport.report(ScoverageReport.groovy:47) |     |   | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) |     |   | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) |     |   | at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) |     |   | at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104) |     |   | at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58) |     |   | at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51) |     |   | at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29) |     |   | at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:242) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47) |     |   | at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68) |     |   | at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:227) |     |   | at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:210) |     |   | at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:193) |     |   | at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:171) |     |   | at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:89) |     |   | at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:40) |     |   | at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:53) |     |   | at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) |     |   | at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) |     |   | at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:50) |     |   | at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:40) |     |   | at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68) |     |   | at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38) |     |   | at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48) |     |   | at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36) |     |   | at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41) |     |   | at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74) |     |   | at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55) |     |   | at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51) |     |   | at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29) |     |   | at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:61) |     |   | at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:42) |     |   | at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:60) |     |   | at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:27) |     |   | at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:180) |     |   | at org.gradle.internal.execution.steps.BuildCacheStep.executeAndStoreInCache(BuildCacheStep.java:155) |     |   | at org.gradle.internal.execution.steps.BuildCacheStep.lambda$executeWithCache$4(BuildCacheStep.java:125) |     |   | at org.gradle.internal.execution.steps.BuildCacheStep.lambda$executeWithCache$5(BuildCacheStep.java:125) |     |   | at org.gradle.internal.Try$Success.map(Try.java:164) |     |   | at org.gradle.internal.execution.steps.BuildCacheStep.executeWithCache(BuildCacheStep.java:85) |     |   | at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$0(BuildCacheStep.java:74) |     |   | at org.gradle.internal.Either$Left.fold(Either.java:115) |     |   | at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59) |     |   | at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73) |     |   | at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48) |     |   | at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36) |     |   | at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25) |     |   | at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36) |     |   | at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22) |     |   | at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:110) |     |   | at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:56) |     |   | at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:56) |     |   | at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38) |     |   | at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:73) |     |   | at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:44) |     |   | at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37) |     |   | at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27) |     |   | at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:89) |     |   | at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:50) |     |   | at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:114) |     |   | at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:57) |     |   | at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:76) |     |   | at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:50) |     |   | at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNoEmptySources(SkipEmptyWorkStep.java:249) |     |   | at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:86) |     |   | at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:54) |     |   | at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32) |     |   | at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21) |     |   | at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38) |     |   | at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:43) |     |   | at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:31) |     |   | at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40) |     |   | at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:287) |     |   | at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40) |     |   | at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30) |     |   | at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37) |     |   | at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27) |     |   | at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44) |     |   | at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:33) |     |   | at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76) |     |   | at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:144) |     |   | at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:133) |     |   | at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77) |     |   | at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) |     |   | at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51) |     |   | at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) |     |   | at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56) |     |   | at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) |     |   | at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) |     |   | at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) |     |   | at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) |     |   | at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) |     |   | at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) |     |   | at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) |     |   | at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74) |     |   | at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:333) |     |   | at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:320) |     |   | at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:313) |     |   | at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:299) |     |   | at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:143) |     |   | at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:227) |     |   | at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:218) |     |   | at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:140) |     |   | at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) |     |   | at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions