-
-
Notifications
You must be signed in to change notification settings - Fork 424
Closed
Labels
Description
Expected and Results
After upgrading from com.gradleup.shadow 8.3.6 to 8.3.7, my builds started failing with a java.lang.StackOverflowError exception:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':xxx:shadowJar'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:130)
at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:293)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:128)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:116)
at org.gradle.api.internal.tasks.execution.ProblemsTaskPathTrackingTaskExecuter.execute(ProblemsTaskPathTrackingTaskExecuter.java:41)
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:74)
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:210)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:205)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:67)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:60)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:167)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:60)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:54)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314)
at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:85)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
Caused by: java.lang.StackOverflowError
at java.base/jdk.internal.util.StrongReferenceKey.equals(StrongReferenceKey.java:69)
at java.base/jdk.internal.util.ReferencedKeyMap.getNoCheckStale(ReferencedKeyMap.java:215)
at java.base/jdk.internal.util.ReferencedKeyMap.get(ReferencedKeyMap.java:208)
at java.base/jdk.internal.util.ReferencedKeySet.get(ReferencedKeySet.java:173)
at org.gradle.internal.classpath.intercept.DefaultCallSiteDecorator.lambda$maybeInstrumentedDynamicCallViaMethodHandle$1(DefaultCallSiteDecorator.java:168)
at org.gradle.internal.classpath.InstrumentedGroovyCallsHelper.withEntryPoint(InstrumentedGroovyCallsHelper.java:34)
at org.gradle.internal.classpath.intercept.DefaultCallSiteDecorator.maybeInstrumentedDynamicCallViaMethodHandle(DefaultCallSiteDecorator.java:168)
at org.gradle.internal.instrumentation.api.groovybytecode.MethodHandleInvocation.callNext(MethodHandleInvocation.java:64)
at org.gradle.internal.classpath.generated.InterceptorDeclaration_ConfigCacheGroovyInterceptors$LengthCallInterceptor.intercept(InterceptorDeclaration_ConfigCacheGroovyInterceptors.java:296)
at org.gradle.internal.instrumentation.api.groovybytecode.AbstractCallInterceptor.interceptMethodHandle(AbstractCallInterceptor.java:61)
at com.github.jengelman.gradle.plugins.shadow.internal.CleanProperties$StripCommentsWithTimestampBufferedWriter.<init>(CleanProperties.groovy:12)
at org.gradle.internal.instrumentation.api.groovybytecode.MethodHandleInvocation.callNext(MethodHandleInvocation.java:64)
at org.gradle.internal.classpath.intercept.DefaultCallSiteDecorator$1.intercept(DefaultCallSiteDecorator.java:88)
at org.gradle.internal.instrumentation.api.groovybytecode.AbstractCallInterceptor.interceptMethodHandle(AbstractCallInterceptor.java:61)
at com.github.jengelman.gradle.plugins.shadow.internal.CleanProperties.store(CleanProperties.groovy:32)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at com.github.jengelman.gradle.plugins.shadow.internal.CleanProperties.store(CleanProperties.groovy:32)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
...
I have tracked this down to the usage of :
shadowJar {
...
transform(PropertiesFileTransformer::class.java) {
paths = listOf("foo", "bar")
mergeStrategy = "latest"
}
}
### Related environment and versions
Gradle 8.14.2
### Reproduction steps
_No response_
### Anything else?
_No response_