smallrye-open-api icon indicating copy to clipboard operation
smallrye-open-api copied to clipboard

NPE when scanning `@OAuthScope` with `name` but no `description`

Open Azquelt opened this issue 7 months ago • 0 comments

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)

Azquelt avatar Jun 26 '24 17:06 Azquelt