smallrye-open-api
smallrye-open-api copied to clipboard
NPE when scanning `@OAuthScope` with `name` but no `description`
Not sure what should happen here, the scopes become a Map<String, String>
.
Happens on both main
and main-4.0
branches.
Here's a messy unit test which shows the problem: https://github.com/Azquelt/smallrye-open-api/blob/flow-npe-4x/core/src/test/java/io/smallrye/openapi/runtime/io/security/SecuritySchemeIOTest.java
Stack trace:
java.lang.NullPointerException
at java.base/java.util.HashMap.merge(HashMap.java:1355)
at java.base/java.util.stream.Collectors.lambda$toMap$68(Collectors.java:1673)
at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at io.smallrye.openapi.runtime.io.MapModelIO.readMap(MapModelIO.java:73)
at io.smallrye.openapi.runtime.io.MapModelIO.readMap(MapModelIO.java:58)
at io.smallrye.openapi.runtime.io.MapModelIO.readMap(MapModelIO.java:47)
at java.base/java.util.Optional.map(Optional.java:260)
at io.smallrye.openapi.runtime.io.MapModelIO.readMap(MapModelIO.java:53)
at io.smallrye.openapi.runtime.io.security.OAuthFlowIO.read(OAuthFlowIO.java:32)
at io.smallrye.openapi.runtime.io.security.SecuritySchemeIOTest.testReadFlow(SecuritySchemeIOTest.java:50)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)