<@U01SP2GJYAU> I'm having a funny crash when I add...
# komapper
d
@Toshihiro Nakamura I'm having a funny crash when I add
@KomapperEntity(aliases = ["pa"])
to an entity (in the thread)
Copy code
org.jetbrains.kotlin.resolve.lazy.NoDescriptorForDeclarationException: Descriptor wasn't found for declaration CLASS
	at org.jetbrains.kotlin.resolve.lazy.BasicAbsentDescriptorHandler.diagnoseDescriptorNotFound(AbsentDescriptorHandler.kt:18)
	at org.jetbrains.kotlin.resolve.lazy.BasicAbsentDescriptorHandler.diagnoseDescriptorNotFound(AbsentDescriptorHandler.kt:17)
	at org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver.findClassDescriptor(LazyDeclarationResolver.kt:88)
	at org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver.getClassDescriptor(LazyDeclarationResolver.kt:62)
	at org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver.getMemberScopeDeclaredIn$frontend(LazyDeclarationResolver.kt:227)
	at org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver$resolveToDescriptor$1.visitNamedFunction(LazyDeclarationResolver.kt:124)
	at org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver$resolveToDescriptor$1.visitNamedFunction(LazyDeclarationResolver.kt:94)
	at org.jetbrains.kotlin.psi.KtNamedFunction.accept(KtNamedFunction.java:50)
	at org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver.resolveToDescriptor(LazyDeclarationResolver.kt:94)
	at org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver.resolveToDescriptor(LazyDeclarationResolver.kt:91)
	at org.jetbrains.kotlin.resolve.lazy.ResolveSession.resolveToDescriptor(ResolveSession.java:368)
	at com.google.devtools.ksp.processing.impl.ResolverImpl.resolveDeclaration(ResolverImpl.kt:517)
	at com.google.devtools.ksp.processing.impl.ResolverImpl.resolveFunctionDeclaration(ResolverImpl.kt:582)
	at com.google.devtools.ksp.processing.impl.ResolverImpl.overrides$resolveForOverride(ResolverImpl.kt:378)
	at com.google.devtools.ksp.processing.impl.ResolverImpl.overrides(ResolverImpl.kt:398)
	at io.micronaut.kotlin.processing.KotlinNativeElementsHelper.overrides(KotlinNativeElementsHelper.kt:55)
	at io.micronaut.kotlin.processing.KotlinNativeElementsHelper.overrides(KotlinNativeElementsHelper.kt:33)
	at io.micronaut.inject.utils.NativeElementsHelper.reduce(NativeElementsHelper.java:249)
	at io.micronaut.inject.utils.NativeElementsHelper.processInterfaceHierarchy(NativeElementsHelper.java:225)
	at io.micronaut.inject.utils.NativeElementsHelper.processInterfaceHierarchy(NativeElementsHelper.java:223)
	at io.micronaut.inject.utils.NativeElementsHelper.processClassHierarchy(NativeElementsHelper.java:210)
	at io.micronaut.inject.utils.NativeElementsHelper.getAllElements(NativeElementsHelper.java:191)
	at io.micronaut.inject.utils.NativeElementsHelper.findOverriddenMethods(NativeElementsHelper.java:168)
	at io.micronaut.kotlin.processing.KotlinNativeElementsHelper.findOverriddenMethods(KotlinNativeElementsHelper.kt:51)
	at io.micronaut.kotlin.processing.annotation.KotlinAnnotationMetadataBuilder.methodsHierarchy(KotlinAnnotationMetadataBuilder.kt:320)
	at io.micronaut.kotlin.processing.annotation.KotlinAnnotationMetadataBuilder.buildHierarchy(KotlinAnnotationMetadataBuilder.kt:305)
	at io.micronaut.kotlin.processing.annotation.KotlinAnnotationMetadataBuilder.buildHierarchy(KotlinAnnotationMetadataBuilder.kt:57)
	at io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder.buildInternalMulti(AbstractAnnotationMetadataBuilder.java:778)
	at io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder.buildInternal(AbstractAnnotationMetadataBuilder.java:246)
	at io.micronaut.inject.annotation.AbstractAnnotationMetadataBuilder.lookupOrBuild(AbstractAnnotationMetadataBuilder.java:235)
	at io.micronaut.kotlin.processing.annotation.KotlinElementAnnotationMetadataFactory.lookupForMethod(KotlinElementAnnotationMetadataFactory.kt:177)
	at io.micronaut.inject.ast.annotation.AbstractElementAnnotationMetadataFactory$8.lookup(AbstractElementAnnotationMetadataFactory.java:337)
	at io.micronaut.inject.ast.annotation.AbstractElementAnnotationMetadataFactory$AbstractElementAnnotationMetadata.getCacheEntry(AbstractElementAnnotationMetadataFactory.java:451)
	at io.micronaut.inject.ast.annotation.AbstractElementAnnotationMetadataFactory$AbstractElementAnnotationMetadata.getAnnotationMetadataToModify(AbstractElementAnnotationMetadataFactory.java:469)
	at io.micronaut.inject.ast.annotation.AbstractElementAnnotationMetadataFactory$MutableElementAnnotationMetadata.annotate(AbstractElementAnnotationMetadataFactory.java:528)
	at io.micronaut.inject.ast.annotation.AbstractElementAnnotationMetadataFactory$MutableElementAnnotationMetadata.annotate(AbstractElementAnnotationMetadataFactory.java:502)
	at io.micronaut.inject.ast.annotation.MutableAnnotationMetadataDelegate.annotate(MutableAnnotationMetadataDelegate.java:127)
	at io.micronaut.inject.ast.annotation.AbstractAnnotationElement.annotate(AbstractAnnotationElement.java:120)
	at io.micronaut.kotlin.processing.visitor.KotlinElementFactory.newMethodElement(KotlinElementFactory.kt:95)
	at io.micronaut.kotlin.processing.visitor.KotlinClassElement$KotlinEnclosedElementsQuery.toAstElement(KotlinClassElement.kt:880)
	at io.micronaut.kotlin.processing.visitor.KotlinClassElement$KotlinEnclosedElementsQuery.toAstElement(KotlinClassElement.kt:686)
	at io.micronaut.inject.ast.utils.EnclosedElementsQuery.lambda$convertElement$3(EnclosedElementsQuery.java:373)
	at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1220)
	at io.micronaut.inject.ast.utils.EnclosedElementsQuery.convertElement(EnclosedElementsQuery.java:373)
	at io.micronaut.inject.ast.utils.EnclosedElementsQuery.reduce(EnclosedElementsQuery.java:312)
	at io.micronaut.inject.ast.utils.EnclosedElementsQuery.processClassHierarchy(EnclosedElementsQuery.java:266)
	at io.micronaut.inject.ast.utils.EnclosedElementsQuery.getAllElements(EnclosedElementsQuery.java:248)
	at io.micronaut.inject.ast.utils.EnclosedElementsQuery.getEnclosedElements(EnclosedElementsQuery.java:189)
	at io.micronaut.kotlin.processing.visitor.KotlinClassElement.getEnclosedElements(KotlinClassElement.kt:684)
	at io.micronaut.kotlin.processing.visitor.TypeElementSymbolProcessor$ElementVisitor.visitMembers(TypeElementSymbolProcessor.kt:310)
	at io.micronaut.kotlin.processing.visitor.TypeElementSymbolProcessor$ElementVisitor.visitClassDeclaration(TypeElementSymbolProcessor.kt:277)
	at com.google.devtools.ksp.symbol.impl.kotlin.KSClassDeclarationImpl.accept(KSClassDeclarationImpl.kt:133)
	at io.micronaut.kotlin.processing.visitor.TypeElementSymbolProcessor.process(TypeElementSymbolProcessor.kt:130)
	at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$8$1.invoke(KotlinSymbolProcessingExtension.kt:310)
	at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$8$1.invoke(KotlinSymbolProcessingExtension.kt:308)
	at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.handleException(KotlinSymbolProcessingExtension.kt:414)
	at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.doAnalysis(KotlinSymbolProcessingExtension.kt:308)
	at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:112)
	at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:75)
	at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze$lambda$12(KotlinToJVMBytecodeCompiler.kt:373)
	at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:115)
	at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:364)
	at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.repeatAnalysisIfNeeded(KotlinToJVMBytecodeCompiler.kt:282)
	at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.runFrontendAndGenerateIrUsingClassicFrontend(KotlinToJVMBytecodeCompiler.kt:195)
	at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:106)
	at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:176)
	at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:50)
	at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:104)
	at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:48)
	at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
	at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1556)
	at jdk.internal.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
	at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
	at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
	at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
Copy code
[ksp] /home/david/.../microservices/...-music-api/build/generated/ksp/main/kotlin/com/.../repositories/komapper/_PodcastAuthor.kt:6: Error processing type visitor [io.micronaut.context.visitor.ExecutableVisitor@1c0ad2cb]: Descriptor wasn't found for declaration CLASS
If I remove the annotation, the kspKotlin gradle task succeeds.
Even w/o the alias it seems to fail...
It could have something to do with Micronaut's ksp processor, but I'm not sure why it should interfere with yours...
Do you generate anything if there's not
@KomapperEntity
annotation? Why should it not fail if that annotation just happens to be missing?
What's funny is that it started working when I used the compileOption
"-Xuse-fir"
... which is currently experimental... is that now required @Toshihiro Nakamura?
t
Komapper checks the following annotations to generate code or files: •
@KomapperEntity
@KomapperEntityDef
@KomapperProjection
@KomapperProjectionDef
@EntityMetamodelFactory
However, based on the stack trace, it doesn’t seem to be an issue with Komapper. I suggest trying to clear the Gradle cache or stopping the Gradle Daemon.
d
That didn't work... it seems like Micronaut's ksp plugin isn't compatible with Komapper's for some reason... I went back to using Kapt in Micronaut and it started working... even the compiler option I said before didn't really work, it just didn't crash. The funny thing is that Komapper actually manages to generate it's files w/o that option, it just crashes later with Micronaut. There's a few issues at the ksp repo with similar crashes in Moshi and other libraries. It's probably not your concern, I was just wondering if you had some insight on this, thanks!