Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix issue deserializing to nullptr #3572

Merged
merged 2 commits into from
Aug 8, 2019
Merged

Conversation

dan-drl
Copy link
Contributor

@dan-drl dan-drl commented Aug 6, 2019

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\. If contributing template-only or documentation-only changes which will change sample output, be sure to build the project first.
  • Filed the PR against the correct branch: master, 4.1.x, 5.0.x. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

Description of the PR

This addresses bug #3374. In the test json provided for this bug, there is an edge case that allows null pointers to occur. The edge case occurs because the value property is both nullable:true and required.

@ravinikam @stkrwork @fvarose @etherealjoy @MartinDelille

@wing328
Copy link
Member

wing328 commented Aug 7, 2019

Thanks for the PR. For your upcoming PRs, I would suggest creating a new branch for the change.

Copy link
Member

@wing328 wing328 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The additional null check looks reasonable to me.

@wing328 wing328 merged commit 7520308 into OpenAPITools:master Aug 8, 2019
@wing328 wing328 added this to the 4.1.0 milestone Aug 9, 2019
@wing328
Copy link
Member

wing328 commented Aug 10, 2019

@dan-drl thanks for the PR, which has been included in the 4.1.0 release: https://twitter.com/oas_generator/status/1160000504455319553

jimschubert added a commit that referenced this pull request Aug 11, 2019
* master: (122 commits)
  Fix #3604 by adding undefined as return type to headers and credentials methods in runtime.ts (#3605)
  Prepare 4.1.1-SNAPSHOT (#3603)
  Prepare 4.1.0 release (#3597)
  [java][client][jax-rs] Add a constant for Jackson @JsonProperty (#3560)
  restore openapi3 petstore.yaml (#3590)
  Add a new NodeJS Express server generator (#3567)
  [C#][client][csharp-netcore] Fix csharp netcore defaultheaders (#3562)
  Fix issue deserializing to nullptr (#3572)
  [OCaml] Add file post-processing (#3583)
  [dart2] Fix up test code generation, double deserialization, 'new' keyword deprecation (#3576)
  Run Qt5 client sample test (#3415)
  typescript-fetch: allow configuration of headers and credentials (#3586)
  using partials in ruby api_client (#3564)
  [OCaml] Added optional params support in API operations (#3568)
  [Rust Server] Generate valid Rustdocs for lazy_static items (#3556)
  Fix NPM build for Typescript-fetch (#3403)
  Expand path templates via resttemplate's uriTemplateHandler (#3500)
  Readme updated with a new tutorial and company using OpenAPI Generator (#3566)
  Fix logic of `getNullableType` of csharp server and client. (#3537)
  [Ruby] clean up Ruby dev dependencies (#3551)
  ...
@TomerJLevy
Copy link

Hi,

In 'openapi-generator/samples/client/petstore/cpp-restsdk/client/ModelBase.cpp':

You should use:

utility::datetime ModelBase::dateFromJson(const web::json::value& val)
{
return val.is_null() ? utility::datetime::from_string(utility::conversions::to_string_t("NULL"), utility::datetime::ISO_8601) : utility::datetime::from_string(val.as_string(), utility::datetime::ISO_8601);
}

instead of:

utility::datetime ModelBase::dateFromJson(const web::json::value& val)
{
return val.is_null() ? utility::datetime::from_string(L"NULL", utility::datetime::ISO_8601) : utility::datetime::from_string(val.as_string(), utility::datetime::ISO_8601);
}

Because 'string_t' may be std::string or std::wstring and it fails to compile if std::string

@etherealjoy
Copy link
Contributor

@TomerJLevy
Thanks for pointing this out, do you wish to make a contribution by creating a new PR for this?
Or we can take this snippet and make a PR.

@TomerJLevy
Copy link

Fix - commit 2c95d10

@wing328
Copy link
Member

wing328 commented Dec 24, 2020

@dan-drl thanks again for the PR. When you've time, can you please contact me via the email address in my Github profile?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants