Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • O openapi-generator
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,476
    • Issues 3,476
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 402
    • Merge requests 402
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenAPI Tools
  • openapi-generator
  • Merge requests
  • !5169

[java-jersey2] Fix empty body when form parameters supplied

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Administrator requested to merge github/fork/ind1go/jersey2-serialize-form-when-no-body into master Jan 31, 2020
  • Overview 0
  • Commits 1
  • Pipelines 0
  • Changes 4

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 or application/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 be Entity.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
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/ind1go/jersey2-serialize-form-when-no-body