jooby-project / jooby

The modular web framework for Java and Kotlin
https://jooby.io
Apache License 2.0
1.7k stars 200 forks source link

[openapi] @QueryParam witn @NonNull annotation breaks openapi parser #3412

Closed kliushnichenko closed 3 months ago

kliushnichenko commented 4 months ago
import edu.umd.cs.findbugs.annotations.NonNull;

class Controller {

        @GET
        public void get(@QueryParam @NonNull String param1, 
                                 @QueryParam String param) { // it is important to have 2 or more params - then issue arise
            ...
        }
    }

The signature above leads to openapi generator to fail with the exception below

Caused by: java.lang.NullPointerException: Cannot invoke "java.util.List.stream()" because "annotations" is null
    at io.jooby.internal.openapi.AnnotationParser.isNullable(AnnotationParser.java:449)
    at io.jooby.internal.openapi.AnnotationParser.routerArguments(AnnotationParser.java:386)
    at io.jooby.internal.openapi.AnnotationParser.routerMethod(AnnotationParser.java:259)
    at io.jooby.internal.openapi.AnnotationParser.parse(AnnotationParser.java:233)
    at io.jooby.internal.openapi.AnnotationParser.parse(AnnotationParser.java:208)
    at io.jooby.internal.openapi.RouteParser.routeHandler(RouteParser.java:334)
    at io.jooby.internal.openapi.RouteParser.parse(RouteParser.java:281)
    at io.jooby.internal.openapi.RouteParser.parse(RouteParser.java:79)
    at io.jooby.openapi.OpenAPIGenerator.generate(OpenAPIGenerator.java:177)
    at io.jooby.openapi.OpenAPIExtension.resolveParameter(OpenAPIExtension.java:58)