dokka
dokka copied to clipboard
ReenteringLazyValueComputationException while dokkaHtml Android gradlew task
Describe the bug While running gradlew command in Android Studios terminal - dokka Html task keeps crashing. Command ./gradlew sdk:dokkaHtml Task Progress in terminal
- Initializing plugins
- Dokka is performing: documentation for sdk
- Validity check
- Creating documentation models
- Crash `* What went wrong: Execution failed for task ':sdk:dokkaHtml'.
org.jetbrains.kotlin.util.ReenteringLazyValueComputationException (no error message)
- Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
- Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':sdk:dokkaHtml'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:142) at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:140) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:128) 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)`
Expected behaviour Javadocs created by Dokka, meaning no crash during execution
Screenshots n-a
To Reproduce Steps to reproduce the behavior, ideally with an example project I can not share project.
- Import Dokka to project according to documentation
- Run gradlew task to generate Javadocs
Dokka configuration Configuration of dokka used to reproduce the bug
Gradle 7.4.1
Installation
- Operating system: Windows 11
- Build tool: Gradle
- Dokka version: 1.9.10
Additional context
Are you willing to provide a PR? no
I do have the same issue happening from time to time
I've faced the same cryptic issue and found a minimal working example:
SomeKotlinClass.kt
class SomeKotlinClass {
val javaClassUsingThis = JavaClassUsingThis(this) // Dangerous to pass this during construction. In my production case unavoidable.
}
JavaClassUsingThis.java
class JavaClassUsingThis {
SomeKotlinClass someKotlinClass;
public JavaClassUsingThis(SomeKotlinClass someKotlinClass) {
this.someKotlinClass = someKotlinClass;
}
}
I've experimented for some time now and found that either
a) converting the Java class to Kotlin
or b) explicitly typing val javaClassUsingThis: JavaClassUsingThis = JavaClassUsingThis(this)
serves as a workaround.
I suspect the type inference via Kotlin -> Java -> Kotlin with classes importing each other doesn't work properly.