Current behavior
Hello,
I’m trying to upgrade a project from Gradle 8.11 to Gradle 8.12, and I’m constantly getting compilation issues when executing any gradle task.
Caused by: java.lang.NullPointerException: group.displayName must not be null
at org.gradle.problems.internal.impl.DefaultProblemsReportCreatorKt$problemId$1$1.invoke(DefaultProblemsReportCreator.kt:104)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreatorKt$problemId$1$1.invoke(DefaultProblemsReportCreator.kt:102)
at org.gradle.internal.cc.impl.problems.JsonWriter$jsonObjectList$1$1.invoke(JsonWriter.kt:84)
at org.gradle.internal.cc.impl.problems.JsonWriter$jsonObjectList$1$1.invoke(JsonWriter.kt:83)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonObject(JsonWriter.kt:39)
at org.gradle.internal.cc.impl.problems.JsonWriter$jsonObjectList$1.invoke(JsonWriter.kt:83)
at org.gradle.internal.cc.impl.problems.JsonWriter$jsonObjectList$1.invoke(JsonWriter.kt:82)
at org.gradle.internal.cc.impl.problems.JsonWriter$jsonList$1$1.invoke(JsonWriter.kt:98)
at org.gradle.internal.cc.impl.problems.JsonWriter$jsonList$1$1.invoke(JsonWriter.kt:97)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonListItem(JsonWriter.kt:105)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonList(JsonWriter.kt:97)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonObjectList(JsonWriter.kt:82)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonObjectList(JsonWriter.kt:77)
Investigation
I’ve narrowed down the problem to the new Problems API implementation (this line, specifically).
Workaround
The error goes away as soon as I:
- Revert back to Gradle 8.11, or
- Disable the generated HTML report with
--no-problems-report
flag.
Repro steps
Unfortunately, I have not been able to create a self-contained reproducer project, not even with the project replicator. My app consists of several modules, combines React Native and KMP, so not a very common setup and hard to replicate.
I’m guessing there’s something wrong with my project that the Problems API would warn me about, but unfortunately it’s hard to figure out what given that the reports fails to build.
Full stacktrace
* Exception is:
java.util.concurrent.ExecutionException: java.lang.NullPointerException: group.displayName must not be null
at java.base/java.util.concurrent.FutureTask.report(Unknown Source)
at java.base/java.util.concurrent.FutureTask.get(Unknown Source)
at org.gradle.internal.configuration.problems.CommonReport$State$Spooling.commitReportTo(CommonReport.kt:192)
at org.gradle.internal.configuration.problems.CommonReport.writeReportFileTo(CommonReport.kt:370)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreator.createReportFile(DefaultProblemsReportCreator.kt:65)
at org.gradle.problems.internal.services.DefaultProblemSummarizer.report(DefaultProblemSummarizer.java:77)
at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.reportProblems(ProblemReportingBuildActionRunner.java:61)
at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.run(ProblemReportingBuildActionRunner.java:52)
at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:71)
at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:135)
at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41)
at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.lambda$execute$0(RootBuildLifecycleBuildActionExecutor.java:54)
at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:130)
at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute(RootBuildLifecycleBuildActionExecutor.java:54)
at org.gradle.internal.buildtree.InitDeprecationLoggingActionExecutor.execute(InitDeprecationLoggingActionExecutor.java:62)
at org.gradle.internal.buildtree.InitProblems.execute(InitProblems.java:36)
at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute(DefaultBuildTreeContext.java:40)
at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.lambda$execute$0(BuildTreeLifecycleBuildActionExecutor.java:71)
at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:60)
at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute(BuildTreeLifecycleBuildActionExecutor.java:71)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$2.call(RunAsBuildOperationBuildActionExecutor.java:67)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$2.call(RunAsBuildOperationBuildActionExecutor.java:63)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
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:166)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute(RunAsBuildOperationBuildActionExecutor.java:63)
at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.lambda$execute$0(RunAsWorkerThreadBuildActionExecutor.java:36)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:263)
at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:127)
at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute(RunAsWorkerThreadBuildActionExecutor.java:36)
at org.gradle.tooling.internal.provider.continuous.ContinuousBuildActionExecutor.execute(ContinuousBuildActionExecutor.java:110)
at org.gradle.tooling.internal.provider.SubscribableBuildActionExecutor.execute(SubscribableBuildActionExecutor.java:64)
at org.gradle.internal.session.DefaultBuildSessionContext.execute(DefaultBuildSessionContext.java:46)
at org.gradle.internal.buildprocess.execution.BuildSessionLifecycleBuildActionExecutor$ActionImpl.apply(BuildSessionLifecycleBuildActionExecutor.java:92)
at org.gradle.internal.buildprocess.execution.BuildSessionLifecycleBuildActionExecutor$ActionImpl.apply(BuildSessionLifecycleBuildActionExecutor.java:80)
at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:71)
at org.gradle.internal.buildprocess.execution.BuildSessionLifecycleBuildActionExecutor.execute(BuildSessionLifecycleBuildActionExecutor.java:62)
at org.gradle.internal.buildprocess.execution.BuildSessionLifecycleBuildActionExecutor.execute(BuildSessionLifecycleBuildActionExecutor.java:41)
at org.gradle.internal.buildprocess.execution.StartParamsValidatingActionExecutor.execute(StartParamsValidatingActionExecutor.java:64)
at org.gradle.internal.buildprocess.execution.StartParamsValidatingActionExecutor.execute(StartParamsValidatingActionExecutor.java:32)
at org.gradle.internal.buildprocess.execution.SessionFailureReportingActionExecutor.execute(SessionFailureReportingActionExecutor.java:51)
at org.gradle.internal.buildprocess.execution.SessionFailureReportingActionExecutor.execute(SessionFailureReportingActionExecutor.java:39)
at org.gradle.internal.buildprocess.execution.SetupLoggingActionExecutor.execute(SetupLoggingActionExecutor.java:47)
at org.gradle.internal.buildprocess.execution.SetupLoggingActionExecutor.execute(SetupLoggingActionExecutor.java:31)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:70)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.lambda$execute$0(ForwardClientInput.java:40)
at org.gradle.internal.daemon.clientinput.ClientInputForwarder.forwardInput(ClientInputForwarder.java:80)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:64)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:84)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator.lambda$runCommand$0(DaemonStateCoordinator.java:321)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException: group.displayName must not be null
at org.gradle.problems.internal.impl.DefaultProblemsReportCreatorKt$problemId$1$1.invoke(DefaultProblemsReportCreator.kt:104)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreatorKt$problemId$1$1.invoke(DefaultProblemsReportCreator.kt:102)
at org.gradle.internal.cc.impl.problems.JsonWriter$jsonObjectList$1$1.invoke(JsonWriter.kt:84)
at org.gradle.internal.cc.impl.problems.JsonWriter$jsonObjectList$1$1.invoke(JsonWriter.kt:83)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonObject(JsonWriter.kt:39)
at org.gradle.internal.cc.impl.problems.JsonWriter$jsonObjectList$1.invoke(JsonWriter.kt:83)
at org.gradle.internal.cc.impl.problems.JsonWriter$jsonObjectList$1.invoke(JsonWriter.kt:82)
at org.gradle.internal.cc.impl.problems.JsonWriter$jsonList$1$1.invoke(JsonWriter.kt:98)
at org.gradle.internal.cc.impl.problems.JsonWriter$jsonList$1$1.invoke(JsonWriter.kt:97)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonListItem(JsonWriter.kt:105)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonList(JsonWriter.kt:97)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonObjectList(JsonWriter.kt:82)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonObjectList(JsonWriter.kt:77)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreatorKt$problemId$1.invoke(DefaultProblemsReportCreator.kt:102)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreatorKt$problemId$1.invoke(DefaultProblemsReportCreator.kt:100)
at org.gradle.internal.cc.impl.problems.JsonWriter.property(JsonWriter.kt:73)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreatorKt.problemId(DefaultProblemsReportCreator.kt:100)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreator$createReportFile$1$writeToJson$1$1$1$2$1$1.invoke(DefaultProblemsReportCreator.kt:78)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreator$createReportFile$1$writeToJson$1$1$1$2$1$1.invoke(DefaultProblemsReportCreator.kt:77)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonObject(JsonWriter.kt:39)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreator$createReportFile$1$writeToJson$1$1$1$2$1.invoke(DefaultProblemsReportCreator.kt:77)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreator$createReportFile$1$writeToJson$1$1$1$2$1.invoke(DefaultProblemsReportCreator.kt:76)
at org.gradle.internal.cc.impl.problems.JsonWriter$jsonList$1$1.invoke(JsonWriter.kt:98)
at org.gradle.internal.cc.impl.problems.JsonWriter$jsonList$1$1.invoke(JsonWriter.kt:97)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonListItem(JsonWriter.kt:105)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonList(JsonWriter.kt:97)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonList(JsonWriter.kt:90)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreator$createReportFile$1$writeToJson$1$1$1$2.invoke(DefaultProblemsReportCreator.kt:76)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreator$createReportFile$1$writeToJson$1$1$1$2.invoke(DefaultProblemsReportCreator.kt:75)
at org.gradle.internal.cc.impl.problems.JsonWriter.property(JsonWriter.kt:73)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreator$createReportFile$1$writeToJson$1$1$1.invoke(DefaultProblemsReportCreator.kt:75)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreator$createReportFile$1$writeToJson$1$1$1.invoke(DefaultProblemsReportCreator.kt:69)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonObject(JsonWriter.kt:39)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreator$createReportFile$1$writeToJson$1$1.invoke(DefaultProblemsReportCreator.kt:69)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreator$createReportFile$1$writeToJson$1$1.invoke(DefaultProblemsReportCreator.kt:68)
at org.gradle.internal.cc.impl.problems.JsonWriter.property(JsonWriter.kt:73)
at org.gradle.problems.internal.impl.DefaultProblemsReportCreator$createReportFile$1.writeToJson(DefaultProblemsReportCreator.kt:68)
at org.gradle.internal.cc.impl.problems.JsonModelWriter.endModel(JsonModelWriter.kt:31)
at org.gradle.internal.cc.impl.problems.HtmlReportWriter.endHtmlReport(HtmlReportWriter.kt:41)
at org.gradle.internal.configuration.problems.CommonReport$State$Spooling.closeHtmlReport(CommonReport.kt:213)
at org.gradle.internal.configuration.problems.CommonReport$State$Spooling.access$closeHtmlReport(CommonReport.kt:140)
at org.gradle.internal.configuration.problems.CommonReport$State$Spooling$commitReportTo$reportFile$1.call(CommonReport.kt:189)
at org.gradle.internal.configuration.problems.CommonReport$State$Spooling$commitReportTo$reportFile$1.call(CommonReport.kt:188)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
... 5 more
Suppressed: com.fasterxml.jackson.core.JsonGenerationException: Current context not Object but Array
at com.fasterxml.jackson.core.JsonGenerator._reportError(JsonGenerator.java:2858)
at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator.writeEndObject(WriterBasedJsonGenerator.java:356)
at org.gradle.internal.cc.impl.problems.JsonWriter.endObject(JsonWriter.kt:48)
at org.gradle.internal.cc.impl.problems.JsonWriter$JsonObject.close(JsonWriter.kt:30)
at kotlin.jdk7.AutoCloseableKt.closeFinally(AutoCloseableJVM.kt:51)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonObject(JsonWriter.kt:38)
... 29 more
Suppressed: com.fasterxml.jackson.core.JsonGenerationException: Current context not Object but Array
at com.fasterxml.jackson.core.JsonGenerator._reportError(JsonGenerator.java:2858)
at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator.writeEndObject(WriterBasedJsonGenerator.java:356)
at org.gradle.internal.cc.impl.problems.JsonWriter.endObject(JsonWriter.kt:48)
at org.gradle.internal.cc.impl.problems.JsonWriter$JsonObject.close(JsonWriter.kt:30)
at kotlin.jdk7.AutoCloseableKt.closeFinally(AutoCloseableJVM.kt:51)
at org.gradle.internal.cc.impl.problems.JsonWriter.jsonObject(JsonWriter.kt:38)
... 16 more