Describe the bug
During client generation, models intentionally marked as ignored by openapi-generics could still be visible to upstream OpenAPI Generator global model post-processing.
Ignored models can come from more than one source:
- schemas marked with
x-ignore-model=true
- models registered as externally provided contract types
The generated client output was already correct. Ignored models were not generated as client DTOs, and generation remained deterministic.
However, because ignored models were removed after delegating to upstream JavaClientCodegen.postProcessAllModels(...), the upstream generator could still attempt to resolve those models during its global model graph traversal.
This produced misleading warning logs during client generation, for example:
[WARNING] Null model found in postProcessAllModels: CustomerDto
[WARNING] Null model found in postProcessAllModels: Meta
[WARNING] Null model found in postProcessAllModels: PageCustomerDto
[WARNING] Null model found in postProcessAllModels: Sort
This did not affect generated source correctness, runtime behavior, or contract alignment.
The issue was limited to warning pollution during client generation and reflected a lifecycle mismatch between openapi-generics ignored-model semantics and upstream OpenAPI Generator global model graph processing.
Steps to reproduce
-
Use a client-generation module configured with openapi-generics-java-codegen-parent.
-
Generate a client using the java-generics-contract generator.
-
Ensure the generated OpenAPI model graph contains models that are intentionally ignored by openapi-generics, for example through:
or through an externally provided model mapping.
- Run client generation:
mvn clean generate-sources
- Observe that the generated client output is correct, but the build log may contain misleading warnings similar to:
[WARNING] Null model found in postProcessAllModels: <ModelName>
Expected behavior
Models intentionally ignored by openapi-generics should not be passed into upstream global model graph processing as models that still need to be resolved.
Ignored models should be filtered before JavaClientCodegen.postProcessAllModels(...) runs.
Client generation should remain clean and deterministic, without warning logs for models that were intentionally excluded from generation.
Affected area
- generator
- ignored model handling
- client generation lifecycle
- CI/CD build log hygiene
Environment
No response
Additional context
This was not a generated-code correctness issue.
The root cause was ordering inside GenericAwareJavaCodegen.postProcessAllModels(...).
Previously, ignored models were removed after calling:
super.postProcessAllModels(allModels)
That allowed upstream JavaClientCodegen to traverse ignored models during global model graph processing and emit misleading null-model warnings.
The fix removes ignored models from allModels before delegating to upstream processing:
@Override
public Map<String, ModelsMap> postProcessAllModels(Map<String, ModelsMap> allModels) {
int before = allModels.size();
allModels.entrySet().removeIf(e -> ignoreDecider.isIgnored(e.getKey()));
int after = allModels.size();
if (before != after) {
log.debug("Removed ignored models from global model graph: {} -> {}", before, after);
}
return super.postProcessAllModels(allModels);
}
This aligns ignored-model filtering with the upstream generator lifecycle and prevents warnings for intentionally excluded models.
Fixed on main and currently available in 1.0.3-SNAPSHOT.
Planned for the next public release.
Implementation reference:
f0fa451
Describe the bug
During client generation, models intentionally marked as ignored by
openapi-genericscould still be visible to upstream OpenAPI Generator global model post-processing.Ignored models can come from more than one source:
x-ignore-model=trueThe generated client output was already correct. Ignored models were not generated as client DTOs, and generation remained deterministic.
However, because ignored models were removed after delegating to upstream
JavaClientCodegen.postProcessAllModels(...), the upstream generator could still attempt to resolve those models during its global model graph traversal.This produced misleading warning logs during client generation, for example:
This did not affect generated source correctness, runtime behavior, or contract alignment.
The issue was limited to warning pollution during client generation and reflected a lifecycle mismatch between
openapi-genericsignored-model semantics and upstream OpenAPI Generator global model graph processing.Steps to reproduce
Use a client-generation module configured with
openapi-generics-java-codegen-parent.Generate a client using the
java-generics-contractgenerator.Ensure the generated OpenAPI model graph contains models that are intentionally ignored by
openapi-generics, for example through:or through an externally provided model mapping.
Expected behavior
Models intentionally ignored by
openapi-genericsshould not be passed into upstream global model graph processing as models that still need to be resolved.Ignored models should be filtered before
JavaClientCodegen.postProcessAllModels(...)runs.Client generation should remain clean and deterministic, without warning logs for models that were intentionally excluded from generation.
Affected area
Environment
No response
Additional context
This was not a generated-code correctness issue.
The root cause was ordering inside
GenericAwareJavaCodegen.postProcessAllModels(...).Previously, ignored models were removed after calling:
That allowed upstream
JavaClientCodegento traverse ignored models during global model graph processing and emit misleading null-model warnings.The fix removes ignored models from
allModelsbefore delegating to upstream processing:This aligns ignored-model filtering with the upstream generator lifecycle and prevents warnings for intentionally excluded models.
Fixed on
mainand currently available in1.0.3-SNAPSHOT.Planned for the next public release.
Implementation reference:
f0fa451