[Fix] Regression where content type from swagger @RequestBody does not take precedence #3133
+261
−4
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 #3128
Note that I cannot claim to understand the different ways of deriving a request body, due to there being so many different ways of branching the calculation. When debugging the issue I found that the calculation never let go of the default type from the method, and thus
jsonalways remained as one of the types, as reported in the issue.I reintroduced a previous check for
if (!methodAttributes.isWithResponseBodySchemaDoc()), that would prevent another calculation round if there is an explicit swagger-core annotation defined (i.e., someone wants to explicitly set the content type that will be present in the specification).It could be that there are better and more logical ways of realizing this given the changes that were conducted in dcdb1b7.