-
Notifications
You must be signed in to change notification settings - Fork 539
Closed
Labels
Description
Description
After upgrading from version 2.1.25 to 2.1.26, a NullPointerException occurs when parsing an OpenAPI definition. The error appears to be caused by a missing "description" field in a response header. Although "description" is optional according to the OpenAPI 3.0 specification, the parser tries to call .equals() on it unconditionally.
This issue did not occur with version 2.1.25.
Stacktrace
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "value" is null
at io.swagger.v3.parser.util.OpenAPIDeserializer.getHeader(OpenAPIDeserializer.java:2249)
at io.swagger.v3.parser.util.OpenAPIDeserializer.getHeaders(OpenAPIDeserializer.java:2183)
at io.swagger.v3.parser.util.OpenAPIDeserializer.getResponse(OpenAPIDeserializer.java:3490)
at io.swagger.v3.parser.util.OpenAPIDeserializer.getResponses(OpenAPIDeserializer.java:3440)
at io.swagger.v3.parser.util.OpenAPIDeserializer.getOperation(OpenAPIDeserializer.java:3586)
at io.swagger.v3.parser.util.OpenAPIDeserializer.getPathItem(OpenAPIDeserializer.java:1060)
at io.swagger.v3.parser.util.OpenAPIDeserializer.getPathItems(OpenAPIDeserializer.java:904)
at io.swagger.v3.parser.util.OpenAPIDeserializer.getPaths(OpenAPIDeserializer.java:846)
at io.swagger.v3.parser.util.OpenAPIDeserializer.parseRoot(OpenAPIDeserializer.java:378)
at io.swagger.v3.parser.util.OpenAPIDeserializer.deserialize(OpenAPIDeserializer.java:309)
at io.swagger.v3.parser.OpenAPIV3Parser.parseJsonNode(OpenAPIV3Parser.java:147)
at io.swagger.v3.parser.OpenAPIV3Parser.readContents(OpenAPIV3Parser.java:178)
at io.swagger.v3.parser.OpenAPIV3Parser.readLocation(OpenAPIV3Parser.java:97)
at io.swagger.v3.parser.OpenAPIV3Parser.read(OpenAPIV3Parser.java:124)
Minimal Reproducible Example
Try to parse the following OpenAPI 3.0.1 JSON using swagger-parser 2.1.26:
{
"openapi": "3.0.1",
"info": {
"title": "foo",
"version": "foo"
},
"paths": {
"/foo": {
"post": {
"responses": {
"201": {
"description": "Created",
"headers": {
"Location": {
"required": true,
"schema": {
"type": "string"
},
"style": "simple"
}
}
}
}
}
}
}
}Expected Behavior
The parser should handle headers without a "description" field gracefully and not throw a NullPointerException.
Workaround
Downgrading to 2.1.25 avoids the issue.
Environment
- swagger-parser version: 2.1.26
- Java version: OpenJDK 21
- OS: Ubuntu 22.04
Thank you for your work!