Michal Klimczak
06/14/2022, 9:47 AMjava.lang.IllegalStateException: Unsupported type BookDto at com.squareup.kotlinpoet.metadata.classinspectors.JvmDescriptorTypeVisitor.visitUnknown(JvmDescriptorUtils.kt:191)
. BookDto is a simple data class generated by sqldelight. Then during kapt phase my processor tries to generate a few classes and without correctErrorTypes = false
it generates them with NonExistentClass
and with correctErrorTypes = true
this error. What could that mean?
The line that causes it in the processor:
val typeSpec = (element as TypeElement).toTypeSpec(classInspector)
Also it's random. From time to time it builds just fine, but 80% of the time it fails.
(kotlinpoet 1.10 and 1.11, kotlin 1.6.21, sqldelight 1.5.3, full exception in thread)Michal Klimczak
06/14/2022, 9:48 AMjava.lang.IllegalStateException: Unsupported type BookDto
at com.squareup.kotlinpoet.metadata.classinspectors.JvmDescriptorTypeVisitor.visitUnknown(JvmDescriptorUtils.kt:191)
at com.squareup.kotlinpoet.metadata.classinspectors.JvmDescriptorTypeVisitor.visitError(JvmDescriptorUtils.kt:187)
at com.squareup.kotlinpoet.metadata.classinspectors.JvmDescriptorTypeVisitor.visitError(JvmDescriptorUtils.kt:174)
at jdk.compiler/com.sun.tools.javac.code.Type$ErrorType.accept(Type.java:2394)
at com.squareup.kotlinpoet.metadata.classinspectors.JvmDescriptorUtilsKt.descriptor(JvmDescriptorUtils.kt:112)
at com.squareup.kotlinpoet.metadata.classinspectors.JvmDescriptorUtilsKt$descriptor$parameterDescriptors$1.invoke(JvmDescriptorUtils.kt:140)
at com.squareup.kotlinpoet.metadata.classinspectors.JvmDescriptorUtilsKt$descriptor$parameterDescriptors$1.invoke(JvmDescriptorUtils.kt:140)
at kotlin.text.StringsKt__AppendableKt.appendElement(Appendable.kt:85)
at kotlin.collections.CollectionsKt___CollectionsKt.joinTo(_Collections.kt:3347)
at kotlin.collections.CollectionsKt___CollectionsKt.joinToString(_Collections.kt:3364)
at kotlin.collections.CollectionsKt___CollectionsKt.joinToString$default(_Collections.kt:3363)
at com.squareup.kotlinpoet.metadata.classinspectors.JvmDescriptorUtilsKt.descriptor(JvmDescriptorUtils.kt:140)
at com.squareup.kotlinpoet.metadata.classinspectors.JvmDescriptorTypeVisitor.visitExecutable(JvmDescriptorUtils.kt:181)
at com.squareup.kotlinpoet.metadata.classinspectors.JvmDescriptorTypeVisitor.visitExecutable(JvmDescriptorUtils.kt:174)
at jdk.compiler/com.sun.tools.javac.code.Type$MethodType.accept(Type.java:1513)
at com.squareup.kotlinpoet.metadata.classinspectors.JvmDescriptorUtilsKt.descriptor(JvmDescriptorUtils.kt:112)
at com.squareup.kotlinpoet.metadata.classinspectors.JvmDescriptorUtilsKt.jvmMethodSignature(JvmDescriptorUtils.kt:153)
at com.squareup.kotlinpoet.metadata.classinspectors.ElementsClassInspector.lookupMethod(ElementsClassInspector.kt:155)
at com.squareup.kotlinpoet.metadata.classinspectors.ElementsClassInspector.containerData(ElementsClassInspector.kt:459)
at com.squareup.kotlinpoet.metadata.specs.ClassInspectorKt.containerData(ClassInspector.kt:99)
at com.squareup.kotlinpoet.metadata.specs.KotlinPoetMetadataSpecs.toTypeSpec(KotlinPoetMetadataSpecs.kt:265)
at com.squareup.kotlinpoet.metadata.specs.KotlinPoetMetadataSpecs.toTypeSpec(KotlinPoetMetadataSpecs.kt:182)
at com.squareup.kotlinpoet.metadata.specs.KotlinPoetMetadataSpecs.toTypeSpec(KotlinPoetMetadataSpecs.kt:153)
at com.futuremind.koru.processor.Processor.generateWrappedClasses(Processor.kt:153)
at com.futuremind.koru.processor.Processor.process(Processor.kt:74)
at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor.process(incrementalProcessors.kt:90)
at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.process(annotationProcessing.kt:188)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:980)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:896)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1222)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1335)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1258)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:90)
at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing$default(annotationProcessing.kt:31)
at org.jetbrains.kotlin.kapt3.base.Kapt.kapt(Kapt.kt:47)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.jetbrains.kotlin.gradle.internal.KaptExecution.run(KaptWithoutKotlincTask.kt:302)
at org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction.execute(KaptWithoutKotlincTask.kt:257)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)
at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:97)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
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.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59)
at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$2(DefaultWorkerExecutor.java:206)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:214)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
Zac Sweers
06/14/2022, 1:19 PMMichal Klimczak
06/14/2022, 1:21 PMpackage com.example.db
import kotlin.Long
import kotlin.String
public data class BookDto(
public val id: Long,
public val releaseId: Long,
public val title: String,
public val description: String,
public val coverUri: String,
public val dateValid: Long,
public val version: String,
public val minAppVersion: String,
public val downloadedBookUri: String?,
public val downloadedVersion: String?,
public val downloadedMediaId: Long?,
public val downloadedXmlId: Long?,
public val bookmarkedPage: Long?
) {
public override fun toString(): String = """
|BookDto [
| id: $id
| releaseId: $releaseId
| title: $title
| description: $description
| coverUri: $coverUri
| dateValid: $dateValid
| version: $version
| minAppVersion: $minAppVersion
| downloadedBookUri: $downloadedBookUri
| downloadedVersion: $downloadedVersion
| downloadedMediaId: $downloadedMediaId
| downloadedXmlId: $downloadedXmlId
| bookmarkedPage: $bookmarkedPage
|]
""".trimMargin()
}
Zac Sweers
06/14/2022, 6:27 PMMichal Klimczak
06/14/2022, 6:31 PMvisitUnknown
in kotlinpoet in general? I thought it might be some kind of race between sqldelight codegen and my kapt processor but even when BookDto is already created it happens (consecutive build attempts). Does sqldelight use kapt?Zac Sweers
06/14/2022, 7:02 PM