fix(core): SpecFilter follows ApiResponse $ref to avoid pruning referenced schemas #4977
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #4960
Pull Request
Thank you for contributing to swagger-core!
Description
Bug fix:
SpecFilter.removeBrokenReferenceDefinitions
did not followApiResponse.$ref
, so schemas reachable only through#/components/responses/*
were considered unreferenced and pruned.This PR teaches the pruning pass to resolve
ApiResponse.$ref
and traverse the resolved response's headers and content to collect schema refs, ensuring those schemas are retained.What changed (minimal patch):
addApiResponseSchemaRef(...)
, add a$ref
branch:RefUtils.extractSimpleName(ref).getLeft()
headers
andcontent
to collect schema refsFixes: #4960
Type of Change
Checklist
mvn clean install
)Test Plan
Manual verification: