Skip to content

java.lang.NullPointerException: Cannot invoke "io.swagger.v3.oas.models.media.Schema.get$ref()" because "schema" is null #22576

@scottbusche-usps

Description

@scottbusche-usps

Using OpenAPI Generator 7.18.0, against https://developers.usps.com/sites/default/files/apidoc_specs/containers_4.yaml, I get the following error:

Generating client for spec=containers/containers.yaml lang=java -> generated-clients/containers/java
[main] INFO  o.o.codegen.DefaultGenerator - Generating with dryRun=false
[main] INFO  o.o.c.ignore.CodegenIgnoreProcessor - No .openapi-generator-ignore file found.
[main] INFO  o.o.codegen.DefaultGenerator - OpenAPI Generator: java (client)
[main] INFO  o.o.codegen.DefaultGenerator - Generator 'java' is considered stable.
[main] INFO  o.o.c.languages.AbstractJavaCodegen - Environment variable JAVA_POST_PROCESS_FILE not defined so the Java code may not be properly formatted. To define it, try 'export JAVA_POST_PROCESS_FILE="/usr/local/bin/clang-format -i"' (Linux/Mac)
[main] INFO  o.o.c.languages.AbstractJavaCodegen - NOTE: To enable file post-processing, 'enablePostProcessFile' must be set to `true` (--enable-post-process-file for CLI).
[main] ERROR o.o.codegen.DefaultGenerator - An exception occurred in OpenAPI Normalizer. Please report the issue via https://github.com/openapitools/openapi-generator/issues/new/: 
[main] ERROR o.o.codegen.DefaultGenerator - An exception occurred in OpenAPI Normalizer. Please report the issue via https://github.com/openapitools/openapi-generator/issues/new/: 
java.lang.NullPointerException: Cannot invoke "io.swagger.v3.oas.models.media.Schema.get$ref()" because "schema" is null
	at org.openapitools.codegen.OpenAPINormalizer.normalizeSchema(OpenAPINormalizer.java:699)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeHeaders(OpenAPINormalizer.java:561)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeResponse(OpenAPINormalizer.java:545)
	at org.openapitools.codegen.OpenAPINormalizer.normalizeResponses(OpenAPINormalizer.java:533)
	at org.openapitools.codegen.OpenAPINormalizer.normalizePaths(OpenAPINormalizer.java:426)
	at org.openapitools.codegen.OpenAPINormalizer.normalize(OpenAPINormalizer.java:355)
	at org.openapitools.codegen.DefaultGenerator.configureGeneratorProperties(DefaultGenerator.java:266)
	at org.openapitools.codegen.DefaultGenerator.generate(DefaultGenerator.java:1277)
	at org.openapitools.codegen.cmd.Generate.execute(Generate.java:535)
	at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
	at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)
[main] INFO  o.o.c.languages.AbstractJavaCodegen - Processing operation post-containers-with-container-id
[main] INFO  o.o.c.languages.AbstractJavaCodegen - Processing operation delete-containers-with-container-id
[main] INFO  o.o.c.languages.AbstractJavaCodegen - Processing operation delete-containers-with-container-id-with-packages
[main] INFO  o.o.c.languages.AbstractJavaCodegen - Processing operation post-containers
[main] INFO  o.o.c.languages.AbstractJavaCodegen - Processing operation post-manifest

Compilation error:

Error:  COMPILATION ERROR : 
Error:  /home/runner/work/usps-api/usps-api/generated-clients/containers/java/src/main/java/org/openapitools/client/model/MailingDateOptions.java:[105,33] error: cannot find symbol
  symbol:   method validateJsonElement(JsonElement)
  location: class LocalDate
Error:  /home/runner/work/usps-api/usps-api/generated-clients/containers/java/src/main/java/org/openapitools/client/model/MailingDateOptions.java:[117,38] error: cannot find symbol
  symbol:   method validateJsonElement(JsonElement)
  location: class OffsetDateTime
Error:  /home/runner/work/usps-api/usps-api/generated-clients/containers/java/src/main/java/org/openapitools/client/model/MailingDateOptions.java:[229,21] error: cannot find symbol
  symbol:   method validateJsonElement(JsonElement)
  location: class LocalDate
Error:  /home/runner/work/usps-api/usps-api/generated-clients/containers/java/src/main/java/org/openapitools/client/model/MailingDateOptions.java:[237,26] error: cannot find symbol
  symbol:   method validateJsonElement(JsonElement)
  location: class OffsetDateTime
Error:  Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project openapi-java-client: Compilation failure: Compilation failure: 
Error:  /home/runner/work/usps-api/usps-api/generated-clients/containers/java/src/main/java/org/openapitools/client/model/MailingDateOptions.java:[105,33] error: cannot find symbol
Error:    symbol:   method validateJsonElement(JsonElement)
Error:    location: class LocalDate
Error:  /home/runner/work/usps-api/usps-api/generated-clients/containers/java/src/main/java/org/openapitools/client/model/MailingDateOptions.java:[117,38] error: cannot find symbol
Error:    symbol:   method validateJsonElement(JsonElement)
Error:    location: class OffsetDateTime
Error:  /home/runner/work/usps-api/usps-api/generated-clients/containers/java/src/main/java/org/openapitools/client/model/MailingDateOptions.java:[229,21] error: cannot find symbol
Error:    symbol:   method validateJsonElement(JsonElement)
Error:    location: class LocalDate
Error:  /home/runner/work/usps-api/usps-api/generated-clients/containers/java/src/main/java/org/openapitools/client/model/MailingDateOptions.java:[237,26] error: cannot find symbol
Error:    symbol:   method validateJsonElement(JsonElement)
Error:    location: class OffsetDateTime
Error:  -> [Help 1]
Error:  
Error:  To see the full stack trace of the errors, re-run Maven with the -e switch.
Error:  Re-run Maven using the -X switch to enable full debug logging.
Error:  
Error:  For more information about the errors and possible solutions, please read the following articles:
Error:  [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
Error: Process completed with exit code 1.

No error is present in 7.17.0 and the code is successfully generated and compiles. This is happening in numerous APIs after upgrading, but it's not clear to me where the error is coming from.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions