-
Notifications
You must be signed in to change notification settings - Fork 175
Open
Description
Hello,
There is a problem that we found during the production release build of the Android application with the lint analysis tooling. This is happening only on production release builds, on the debug builds it seems that this issue is not happening.
This is the stack trace:
Execution failed for task ':app:lintVitalAnalyzeProductionRelease'.
> A failure occurred while executing com.android.build.gradle.internal.lint.AndroidLintWorkAction
> Unexpected failure during lint analysis (this is a bug in lint or one of the libraries it depends on)
Message: Unexpected failure during lint analysis (this is a bug in lint or one of the libraries it depends on)
Message: Unexpected failure during lint analysis of CalendarData.kt (this is a bug in lint or one of the libraries it depends on)
Message: class org.jetbrains.kotlin.analysis.api.fir.symbols.pointers.KaFirMemberFunctionSymbolPointer pointer already disposed
Stack: \\\`KotlinIllegalArgumentExceptionWithAttachments:SymbolLightUtilsKt.restoreSymbolOrThrowIfDisposed(symbolLightUtils.kt:433)←SymbolAnnotationsProvider.annotationInfos(SymbolAnnotationsProvider.kt:106)←GranularAnnotationsBox.getOrComputeCachedAnnotations(GranularAnnotationsBox.kt:28)←GranularAnnotationsBox.annotationsArray(GranularAnnotationsBox.kt:44)←SymbolLightModifierList.getAnnotations(SymbolLightModifierList.kt:49)←PsiJvmConversionHelper.getListAnnotations(PsiJvmConversionHelper.java:47)←PsiModifierListOwner.getAnnotations(PsiModifierListOwner.java:36)←PsiJvmModifiersOwner.getAnnotations(PsiJvmModifiersOwner.java:21)←FirKotlinUastResolveProviderService.getPsiAnnotations(FirKotlinUastResolveProviderService.kt:192)←KotlinUMethod.getUAnnotations(KotlinUMethod.kt:75)←UMethod.accept(UMethod.kt:43)←ImplementationUtilsKt.acceptList(implementationUtils.kt:15)←AbstractKotlinUClass.accept(AbstractKotlinUClass.kt:213)←ImplementationUtilsKt.acceptList(implementationUtils.kt:15)←UFile.accept(UFile.kt:89)←UastLintUtilsKt.acceptSourceFile(UastLintUtils.kt:993)←UElementVisitor$visitFile$2.run(UElementVisitor.kt:202)←LintClient.runReadAction(LintClient.kt:1781)←LintDriver$LintClientWrapper.runReadAction(LintDriver.kt:2752)←UElementVisitor.visitFile(UElementVisitor.kt:200)←LintDriver$visitUastDetectors$1.run(LintDriver.kt:2048)←LintClient.runReadAction(LintClient.kt:1781)←LintDriver$LintClientWrapper.runReadAction(LintDriver.kt:2752)←LintDriver.visitUastDetectors(LintDriver.kt:2048)←LintDriver.visitUast(LintDriver.kt:2010)←LintDriver.runFileDetectors(LintDriver.kt:1284)←LintDriver.checkProject(LintDriver.kt:1070)←LintDriver.checkProjectRoot(LintDriver.kt:622)←LintDriver.access$checkProjectRoot(LintDriver.kt:174)←LintDriver$analyzeOnly$1.invoke(LintDriver.kt:445)←LintDriver$analyzeOnly$1.invoke(LintDriver.kt:442)←LintDriver.doAnalyze(LintDriver.kt:501)←LintDriver.analyzeOnly(LintDriver.kt:442)←LintCliClient$analyzeOnly$1.invoke(LintCliClient.kt:259)←LintCliClient$analyzeOnly$1.invoke(LintCliClient.kt:256)←LintCliClient.run(LintCliClient.kt:313)←LintCliClient.analyzeOnly(LintCliClient.kt:256)←Main.run(Main.java:1778)←Main.run(Main.java:282)←NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2)←NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)←DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)←Method.invoke(Method.java:569)←AndroidLintWorkAction.invokeLintMainRunMethod(AndroidLintWorkAction.kt:103)←AndroidLintWorkAction.runLint(AndroidLintWorkAction.kt:90)←AndroidLintWorkAction.execute(AndroidLintWorkAction.kt:64)←DefaultWorkerServer.execute(DefaultWorkerServer.java:63)←NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)←NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)←ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)←NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62)←AbstractWorker$1.call(AbstractWorker.java:44)←AbstractWorker$1.call(AbstractWorker.java:41)←DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)←DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)←DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)←DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)←DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)←DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)←DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)←AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)←NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59)←DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:174)←FutureTask.run(FutureTask.java:264)←DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:194)←DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:127)←DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:169)←Factories$1.create(Factories.java:31)←DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:263)←DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:127)←DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:132)←DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)←DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:133)←Executors$RunnableAdapter.call(Executors.java:539)←FutureTask.run(FutureTask.java:264)←ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)←AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)←ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)←ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)←Thread.run(Thread.java:840)\\\`
Stack: \`RuntimeException:LintDriver$Companion.handleDetectorError(LintDriver.kt:3789)←LintDriver$Companion.handleDetectorError$default(LintDriver.kt:3655)←LintDriver$Companion.handleDetectorError(LintDriver.kt:3652)←UElementVisitor.visitFile(UElementVisitor.kt:242)←LintDriver$visitUastDetectors$1.run(LintDriver.kt:2048)←LintClient.runReadAction(LintClient.kt:1781)←LintDriver$LintClientWrapper.runReadAction(LintDriver.kt:2752)←LintDriver.visitUastDetectors(LintDriver.kt:2048)←LintDriver.visitUast(LintDriver.kt:2010)←LintDriver.runFileDetectors(LintDriver.kt:1284)←LintDriver.checkProject(LintDriver.kt:1070)←LintDriver.checkProjectRoot(LintDriver.kt:622)←LintDriver.access$checkProjectRoot(LintDriver.kt:174)←LintDriver$analyzeOnly$1.invoke(LintDriver.kt:445)←LintDriver$analyzeOnly$1.invoke(LintDriver.kt:442)←LintDriver.doAnalyze(LintDriver.kt:501)←LintDriver.analyzeOnly(LintDriver.kt:442)←LintCliClient$analyzeOnly$1.invoke(LintCliClient.kt:259)←LintCliClient$analyzeOnly$1.invoke(LintCliClient.kt:256)←LintCliClient.run(LintCliClient.kt:313)←LintCliClient.analyzeOnly(LintCliClient.kt:256)←Main.run(Main.java:1778)←Main.run(Main.java:282)←NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2)←NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)←DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)←Method.invoke(Method.java:569)←AndroidLintWorkAction.invokeLintMainRunMethod(AndroidLintWorkAction.kt:103)←AndroidLintWorkAction.runLint(AndroidLintWorkAction.kt:90)←AndroidLintWorkAction.execute(AndroidLintWorkAction.kt:64)←DefaultWorkerServer.execute(DefaultWorkerServer.java:63)←NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)←NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)←ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)←NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62)←AbstractWorker$1.call(AbstractWorker.java:44)←AbstractWorker$1.call(AbstractWorker.java:41)←DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)←DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)←DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)←DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)←DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)←DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)←DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)←AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)←NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59)←DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:174)←FutureTask.run(FutureTask.java:264)←DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:194)←DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:127)←DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:169)←Factories$1.create(Factories.java:31)←DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:263)←DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:127)←DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:132)←DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)←DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:133)←Executors$RunnableAdapter.call(Executors.java:539)←FutureTask.run(FutureTask.java:264)←ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)←AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)←ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)←ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)←Thread.run(Thread.java:840)\`
Stack: `RuntimeException:LintDriver$Companion.handleDetectorError(LintDriver.kt:3789)←LintDriver$Companion.handleDetectorError$default(LintDriver.kt:3655)←LintDriver$Companion.handleDetectorError(LintDriver.kt:3652)←LintDriver$analyzeOnly$1.invoke(LintDriver.kt:447)←LintDriver$analyzeOnly$1.invoke(LintDriver.kt:442)←LintDriver.doAnalyze(LintDriver.kt:501)←LintDriver.analyzeOnly(LintDriver.kt:442)←LintCliClient$analyzeOnly$1.invoke(LintCliClient.kt:259)←LintCliClient$analyzeOnly$1.invoke(LintCliClient.kt:256)←LintCliClient.run(LintCliClient.kt:313)←LintCliClient.analyzeOnly(LintCliClient.kt:256)←Main.run(Main.java:1778)←Main.run(Main.java:282)←NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2)←NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)←DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)←Method.invoke(Method.java:569)←AndroidLintWorkAction.invokeLintMainRunMethod(AndroidLintWorkAction.kt:103)←AndroidLintWorkAction.runLint(AndroidLintWorkAction.kt:90)←AndroidLintWorkAction.execute(AndroidLintWorkAction.kt:64)←DefaultWorkerServer.execute(DefaultWorkerServer.java:63)←NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)←NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)←ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)←NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62)←AbstractWorker$1.call(AbstractWorker.java:44)←AbstractWorker$1.call(AbstractWorker.java:41)←DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)←DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)←DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)←DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)←DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)←DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)←DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)←AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)←NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59)←DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:174)←FutureTask.run(FutureTask.java:264)←DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:194)←DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:127)←DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:169)←Factories$1.create(Factories.java:31)←DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:263)←DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:127)←DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:132)←DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)←DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:133)←Executors$RunnableAdapter.call(Executors.java:539)←FutureTask.run(FutureTask.java:264)←ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)←AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)←ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)←ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)←Thread.run(Thread.java:840)`
This is happening because of the following class definition, which we cannot change because of the functionality:
@Serializable
data class CalendarData(
val markers: List<@Serializable(with = LocalOnlyDateSerializer::class) LocalOnlyDate> =
listOf(), // Serialization inside the generic type is the problem
val lessonCount: Int,
val activityCount: Int,
val assessmentCount: Int,
val mediaCount: Int,
val totalClasses: Int = 0
) {
companion object {
val EMPTY = CalendarData(
markers = listOf(),
lessonCount = 0,
activityCount = 0,
assessmentCount = 0,
mediaCount = 0
)
}
}
the issue specifically occurs with type-level serialization annotations.
Tested on the following versions:
Gradle 8.11.1
Android Gradle Plugin 8.9.2
Kotlin 2.1.20
KtLint Gradle Plugin 12.2.0
Could you check it out and see what could be the problem here? And is there something wrong? Thanks.
Metadata
Metadata
Assignees
Labels
No labels