-
Notifications
You must be signed in to change notification settings - Fork 96
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
Kotlin: When controller request parameter is a collection of enum and different from Array #1131
Comments
@roar-skinderviken Hi! Could you give me example to reproduce this bug? |
@altro3 I wish I could, but as I wrote, I can't reproduce this on localhost with Temurin 17.0.7.
Changed to
|
hm... ok, I'll check it tomorrow |
I believe that the issue is about that |
@roar-skinderviken bug in micronaut 4 core: micronaut-projects/micronaut-core#9571 |
@roar-skinderviken Looks like I'm not quite right. Yes, the behavior of the kernel has changed in the 4th version, but the bug still exists in micronaut-openapi: The problem is identifying the generic in the collection, before micronaut returned the Channel class in your case ( That's why everything stopped working. But I checked what happens if you change your example and explicitly specify a wildcard, i.e. write like this (but in java): @Get
@Produces(MediaType.TEXT_PLAIN)
public String index(@Nullable @QueryValue("channels") Collection<? extends Channel> channels) {
return "Hello World";
} and i got the same error |
Expected Behavior
When upgrading to MN:4.0.0 and micronaut-openapi:5.0.1, builds in Azure Pipeline started to fail, and the problem was located to a specific controller that had one request parameter of type Collection. This worked fine with MN:3.9.4 and micronaut-openapi:4.9.2.
Example controller
Replacing
Collection
withArray
solved the issue.I'm not able to reproduce this issue on localhost.
Actual Behaviour
We were getting this stack trace in Azure Pipelines build log:
2023-07-14T10:58:07.8566490Z [INFO] Note: Generating OpenAPI Documentation
2023-07-14T10:58:07.9204815Z [ERROR] java.lang.IllegalStateException: failed to analyze: java.lang.reflect.InvocationTargetException
2023-07-14T10:58:07.9205292Z at org.jetbrains.kotlin.analyzer.AnalysisResult.throwIfError(AnalysisResult.kt:56)
2023-07-14T10:58:07.9206027Z at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:92)
2023-07-14T10:58:07.9206494Z at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:47)
2023-07-14T10:58:07.9206860Z at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:168)
2023-07-14T10:58:07.9207196Z at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:53)
2023-07-14T10:58:07.9207654Z at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:100)
2023-07-14T10:58:07.9208219Z at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:46)
2023-07-14T10:58:07.9208523Z at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
2023-07-14T10:58:07.9208839Z at org.jetbrains.kotlin.maven.KotlinCompileMojoBase.execCompiler(KotlinCompileMojoBase.java:239)
2023-07-14T10:58:07.9209174Z at org.jetbrains.kotlin.maven.K2JVMCompileMojo.execCompiler(K2JVMCompileMojo.java:240)
2023-07-14T10:58:07.9209522Z at org.jetbrains.kotlin.maven.kapt.KaptJVMCompilerMojo.execCompiler(KaptJVMCompilerMojo.java:154)
2023-07-14T10:58:07.9209861Z at org.jetbrains.kotlin.maven.kapt.KaptJVMCompilerMojo.execCompiler(KaptJVMCompilerMojo.java:46)
2023-07-14T10:58:07.9210202Z at org.jetbrains.kotlin.maven.KotlinCompileMojoBase.execute(KotlinCompileMojoBase.java:220)
2023-07-14T10:58:07.9210624Z at org.jetbrains.kotlin.maven.K2JVMCompileMojo.execute(K2JVMCompileMojo.java:225)
2023-07-14T10:58:07.9210981Z at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
2023-07-14T10:58:07.9211361Z at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:370)
2023-07-14T10:58:07.9211712Z at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:351)
2023-07-14T10:58:07.9212068Z at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:215)
2023-07-14T10:58:07.9212413Z at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:171)
2023-07-14T10:58:07.9212748Z at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:163)
2023-07-14T10:58:07.9213116Z at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
2023-07-14T10:58:07.9213523Z at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
2023-07-14T10:58:07.9213951Z at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
2023-07-14T10:58:07.9214352Z at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
2023-07-14T10:58:07.9214686Z at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:299)
2023-07-14T10:58:07.9214996Z at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
2023-07-14T10:58:07.9215275Z at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
2023-07-14T10:58:07.9215558Z at org.apache.maven.cli.MavenCli.execute(MavenCli.java:963)
2023-07-14T10:58:07.9215832Z at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:296)
2023-07-14T10:58:07.9216101Z at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
2023-07-14T10:58:07.9216380Z at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2023-07-14T10:58:07.9216697Z at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2023-07-14T10:58:07.9217061Z at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2023-07-14T10:58:07.9217379Z at java.base/java.lang.reflect.Method.invoke(Method.java:568)
2023-07-14T10:58:07.9217677Z at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
2023-07-14T10:58:07.9218002Z at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
2023-07-14T10:58:07.9218328Z at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
2023-07-14T10:58:07.9218653Z at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
2023-07-14T10:58:07.9218923Z Caused by: java.lang.reflect.InvocationTargetException
2023-07-14T10:58:07.9219184Z at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2023-07-14T10:58:07.9219505Z at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2023-07-14T10:58:07.9219857Z at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2023-07-14T10:58:07.9220244Z at java.base/java.lang.reflect.Method.invoke(Method.java:568)
2023-07-14T10:58:07.9220561Z at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:90)
2023-07-14T10:58:07.9220930Z at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing$default(annotationProcessing.kt:31)
2023-07-14T10:58:07.9221307Z at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.runAnnotationProcessing(Kapt3Extension.kt:234)
2023-07-14T10:58:07.9221643Z at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:197)
2023-07-14T10:58:07.9221986Z at org.jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:104)
2023-07-14T10:58:07.9222420Z at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM$analyzeFilesWithJavaIntegration$2.invoke(TopDownAnalyzerFacadeForJVM.kt:104)
2023-07-14T10:58:07.9222855Z at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:114)
2023-07-14T10:58:07.9223327Z at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:88)
2023-07-14T10:58:07.9223752Z at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:256)
2023-07-14T10:58:07.9224149Z at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:42)
2023-07-14T10:58:07.9224535Z at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:115)
2023-07-14T10:58:07.9224928Z at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:247)
2023-07-14T10:58:07.9225307Z at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:87)
2023-07-14T10:58:07.9225595Z ... 36 more
2023-07-14T10:58:07.9225907Z Caused by: com.sun.tools.javac.processing.AnnotationProcessingError: java.lang.NullPointerException: Cannot invoke "io.swagger.v3.oas.models.media.Schema.setName(String)" because "schema" is null
2023-07-14T10:58:07.9226335Z at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:1035)
2023-07-14T10:58:07.9226727Z at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:939)
2023-07-14T10:58:07.9227117Z at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1267)
2023-07-14T10:58:07.9227517Z at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1382)
2023-07-14T10:58:07.9227876Z at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1234)
2023-07-14T10:58:07.9228134Z ... 53 more
2023-07-14T10:58:07.9228401Z Caused by: java.lang.NullPointerException: Cannot invoke "io.swagger.v3.oas.models.media.Schema.setName(String)" because "schema" is null
2023-07-14T10:58:07.9228762Z at io.micronaut.openapi.visitor.AbstractOpenApiVisitor.processSuperTypes(AbstractOpenApiVisitor.java:1946)
2023-07-14T10:58:07.9229129Z at io.micronaut.openapi.visitor.AbstractOpenApiVisitor.getSchemaDefinition(AbstractOpenApiVisitor.java:1847)
2023-07-14T10:58:07.9229482Z at io.micronaut.openapi.visitor.AbstractOpenApiVisitor.resolveSchema(AbstractOpenApiVisitor.java:907)
2023-07-14T10:58:07.9229837Z at io.micronaut.openapi.visitor.AbstractOpenApiVisitor.resolveSchema(AbstractOpenApiVisitor.java:852)
2023-07-14T10:58:07.9230211Z at io.micronaut.openapi.visitor.AbstractOpenApiEndpointVisitor.processParameter(AbstractOpenApiEndpointVisitor.java:769)
2023-07-14T10:58:07.9230603Z at io.micronaut.openapi.visitor.AbstractOpenApiEndpointVisitor.processParameters(AbstractOpenApiEndpointVisitor.java:554)
2023-07-14T10:58:07.9231027Z at io.micronaut.openapi.visitor.AbstractOpenApiEndpointVisitor.visitMethod(AbstractOpenApiEndpointVisitor.java:452)
2023-07-14T10:58:07.9231421Z at io.micronaut.annotation.processing.TypeElementVisitorProcessor$ElementVisitor.visitExecutable(TypeElementVisitorProcessor.java:521)
2023-07-14T10:58:07.9231795Z at jdk.compiler/com.sun.tools.javac.code.Symbol$MethodSymbol.accept(Symbol.java:2247)
2023-07-14T10:58:07.9232115Z at [email protected]/javax.lang.model.util.ElementScanner6.scan(ElementScanner6.java:153)
2023-07-14T10:58:07.9232487Z at io.micronaut.annotation.processing.TypeElementVisitorProcessor$ElementVisitor.visitType(TypeElementVisitorProcessor.java:436)
2023-07-14T10:58:07.9232893Z at jdk.compiler/com.sun.tools.javac.code.Symbol$ClassSymbol.accept(Symbol.java:1573)
2023-07-14T10:58:07.9233228Z at io.micronaut.annotation.processing.TypeElementVisitorProcessor.process(TypeElementVisitorProcessor.java:272)
2023-07-14T10:58:07.9233597Z at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor.process(incrementalProcessors.kt:90)
2023-07-14T10:58:07.9233940Z at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.process(annotationProcessing.kt:197)
2023-07-14T10:58:07.9234306Z at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:1023)
2023-07-14T10:58:07.9234580Z ... 57 more
Steps To Reproduce
Apache Maven 3.8.8
Checkstyle analysis is enabled.
PMD analysis is enabled.
Environment Information
micronaut-openapi:5.0.1
swagger-annotations:2.2.15
Kotlin 1.9.0
OS name: "linux", version: "5.15.0-1041-azure", arch: "amd64", family: "unix"
Java version: 17.0.7, vendor: Eclipse Adoptium, runtime: /usr/lib/jvm/temurin-17-jdk-amd64
Example Application
No response
Version
4.0.0
The text was updated successfully, but these errors were encountered: