Created by: ind1go
Fixes #4866 (closed).
PR #3703 introduced a change to the Java jersey2
generator that dealt with errors that were occurring in the case where no body is supplied. It short-circuits with the empty JSON object as the body:
- Entity<?> entity = serialize(body, formParams, contentType);
+ Entity<?> entity = (body == null) ? Entity.json("") : serialize(body, formParams, contentType);
- As #4866 (closed) discovered, when there is no body supplied but there are form parameters (it's
multipart/form-data
orapplication/x-www-form-urlencoded
), the above logic skips the creation of a body from the form parts. This pull request changes the logic to not miss the form parameter body construction. - I suspect from the commentary on the previous pull request and issue that
Entity.json("")
was not intended (which results in the empty JSON object,{}
, being used as body), and instead it was supposed to beEntity.text("")
- i.e. the empty string. This pull request changes the entity in the case where there is no body (and it's not a form) to be the empty string.
PR checklist
-
Read the contribution guidelines. -
If contributing template-only or documentation-only changes which will change sample output, build the project before. -
Run the shell script(s) under ./bin/
(or Windows batch scripts under.\bin\windows
) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run./bin/{LANG}-petstore.sh
,./bin/openapi3/{LANG}-petstore.sh
if updating the code or mustache templates for a language ({LANG}
) (e.g. php, ruby, python, etc). -
File the PR against the correct branch: master
,4.3.x
,5.0.x
. Default:master
. -
Copy the technical committee to review the pull request if your PR is targeting a particular programming language. @bbdouglas @sreeshas @jfiala @lukoyanov @cbornet @jeff9finger @karismann @Zomzog @lwlee2608 @bkabrda, also @jmini