Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compiling a custom Serde in a project which depends on micronaut-validation fails #953

Open
mokenyi opened this issue Oct 16, 2024 · 0 comments

Comments

@mokenyi
Copy link

mokenyi commented Oct 16, 2024

Expected Behavior

Compiling the attached project should succeed.

Actual Behaviour

The following compiler error is produced:

Task :lib:kspKotlin FAILED
e: [ksp] Originating element: ByteArraySerde
e: [ksp] C:/Users/[redacted]/abserde/lib/src/main/kotlin/abserde/ByteArraySerde.kt:12: class io.micronaut.inject.ast.PrimitiveElement cannot be cast to class io.micronaut.kotlin.processing.visitor.KotlinClassElement (io.micronaut.inject.ast.PrimitiveElement and io.micronaut.kotlin.processing.visitor.KotlinClassElement are in unnamed module of loader java.net.URLClassLoader @4f291e1a)
e: java.lang.ClassCastException: class io.micronaut.inject.ast.PrimitiveElement cannot be cast to class io.micronaut.kotlin.processing.visitor.KotlinClassElement (io.micronaut.inject.ast.PrimitiveElement and io.micronaut.kotlin.processing.visitor.KotlinClassElement are in unnamed module of loader java.net.URLClassLoader @4f291e1a)
at io.micronaut.kotlin.processing.visitor.AbstractKotlinElement.resolveLowerBounds(AbstractKotlinElement.kt:367)
at io.micronaut.kotlin.processing.visitor.AbstractKotlinElement.resolveTypeArgument(AbstractKotlinElement.kt:332)
at io.micronaut.kotlin.processing.visitor.AbstractKotlinElement.resolveTypeArguments(AbstractKotlinElement.kt:296)
at io.micronaut.kotlin.processing.visitor.AbstractKotlinElement.newClassElement(AbstractKotlinElement.kt:569)
at io.micronaut.kotlin.processing.visitor.AbstractKotlinElement.newClassElement$default(AbstractKotlinElement.kt:513)
at io.micronaut.kotlin.processing.visitor.AbstractKotlinElement.newClassElement(AbstractKotlinElement.kt:489)
at io.micronaut.kotlin.processing.visitor.KotlinParameterElement$internalType$2.invoke(KotlinParameterElement.kt:41)
at io.micronaut.kotlin.processing.visitor.KotlinParameterElement$internalType$2.invoke(KotlinParameterElement.kt:40)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at io.micronaut.kotlin.processing.visitor.KotlinParameterElement.getInternalType(KotlinParameterElement.kt:40)
at io.micronaut.kotlin.processing.visitor.KotlinParameterElement.getType(KotlinParameterElement.kt:85)
at io.micronaut.validation.visitor.ValidationVisitor.inheritAnnotationsForParameter(ValidationVisitor.java:208)
at io.micronaut.validation.visitor.ValidationVisitor.inheritAnnotationsForMethod(ValidationVisitor.java:198)
at io.micronaut.validation.visitor.ValidationVisitor.lambda$visitMethod$1(ValidationVisitor.java:109)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at io.micronaut.validation.visitor.ValidationVisitor.visitMethod(ValidationVisitor.java:109)
at io.micronaut.validation.visitor.ValidationVisitor.lambda$visitClass$0(ValidationVisitor.java:81)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at io.micronaut.validation.visitor.ValidationVisitor.visitClass(ValidationVisitor.java:81)
at io.micronaut.kotlin.processing.visitor.TypeElementSymbolProcessor$ElementVisitor.visitClassDeclaration(TypeElementSymbolProcessor.kt:266)
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:112)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:364)
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:170)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:43)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:103)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:49)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1555)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
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:833)

e: Error occurred in KSP, check log for detail

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':lib:kspKotlin'.

A failure occurred while executing org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction
Compilation error. See log for more details

  • Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
Get more help at https://help.gradle.org.

BUILD FAILED in 27s
2 actionable tasks: 2 executed

Steps To Reproduce

  1. Download abserde.zip
  2. Unzip abserde.zip
  3. cd into the project root directory
  4. gradle wrapper --gradle-version 8.10.2
  5. ./gradlew build

Environment Information

  • Operating System: Windows 10
  • JDK Version: 17

Example Application

No response

Version

4.6.2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant