You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@mesos.apache.org by Qian Zhang <zh...@gmail.com> on 2018/03/13 06:48:25 UTC

Re: Review Request 66025: Converted `JSON::String` to bool and numbers.

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/66025/
-----------------------------------------------------------

(Updated March 13, 2018, 2:48 p.m.)


Review request for mesos, Benjamin Mahler and Chun-Hung Hsiao.


Changes
-------

Addressed review comments.


Summary (updated)
-----------------

Converted `JSON::String` to bool and numbers.


Bugs: MESOS-8656
    https://issues.apache.org/jira/browse/MESOS-8656


Repository: mesos


Description (updated)
-------

Previsouly when converting a JSON to a protobuf message in stout, we
cannot handle the fields like below which are actually valid.
  "int32": "-2147483647"
  "int64": "-9223372036854775807"
  "float": "1.5"
  "bool": "true"
The conversion will fail with an error like "Not expecting a JSON string
for field 'int32'".

So in this patch, `Try<Nothing> operator()(const JSON::String& string)`
was enhanced to be able to convert `JSON::String` to bool and numbers.
This is to match Google's json -> protobuf behavior, see the doc below
for details:
https://developers.google.com/protocol-buffers/docs/proto3#json


Diffs (updated)
-----

  3rdparty/stout/include/stout/protobuf.hpp 4a1605e5130dbf7e8286dbb43d0d04ab4394e79a 


Diff: https://reviews.apache.org/r/66025/diff/2/

Changes: https://reviews.apache.org/r/66025/diff/1-2/


Testing
-------

sudo make check


Thanks,

Qian Zhang


Re: Review Request 66025: Converted `JSON::String` to bool and numbers.

Posted by Chun-Hung Hsiao <ch...@mesosphere.io>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/66025/#review199102
-----------------------------------------------------------


Fix it, then Ship it!





3rdparty/stout/include/stout/protobuf.hpp
Lines 469 (patched)
<https://reviews.apache.org/r/66025/#comment279387>

    `"Failed to parse '" + ... + '" as a JSON number...` since we're using the same parse function no matter what the actual field type is.



3rdparty/stout/include/stout/protobuf.hpp
Lines 470 (patched)
<https://reviews.apache.org/r/66025/#comment279388>

    `s/for the field/for field`. Ditto below.



3rdparty/stout/include/stout/protobuf.hpp
Lines 479 (patched)
<https://reviews.apache.org/r/66025/#comment279389>

    `"Failed to parse '" ... " as a JSON boolean"...`


- Chun-Hung Hsiao


On March 13, 2018, 6:48 a.m., Qian Zhang wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/66025/
> -----------------------------------------------------------
> 
> (Updated March 13, 2018, 6:48 a.m.)
> 
> 
> Review request for mesos, Benjamin Mahler and Chun-Hung Hsiao.
> 
> 
> Bugs: MESOS-8656
>     https://issues.apache.org/jira/browse/MESOS-8656
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Previsouly when converting a JSON to a protobuf message in stout, we
> cannot handle the fields like below which are actually valid.
>   "int32": "-2147483647"
>   "int64": "-9223372036854775807"
>   "float": "1.5"
>   "bool": "true"
> The conversion will fail with an error like "Not expecting a JSON string
> for field 'int32'".
> 
> So in this patch, `Try<Nothing> operator()(const JSON::String& string)`
> was enhanced to be able to convert `JSON::String` to bool and numbers.
> This is to match Google's json -> protobuf behavior, see the doc below
> for details:
> https://developers.google.com/protocol-buffers/docs/proto3#json
> 
> 
> Diffs
> -----
> 
>   3rdparty/stout/include/stout/protobuf.hpp 4a1605e5130dbf7e8286dbb43d0d04ab4394e79a 
> 
> 
> Diff: https://reviews.apache.org/r/66025/diff/2/
> 
> 
> Testing
> -------
> 
> sudo make check
> 
> 
> Thanks,
> 
> Qian Zhang
> 
>


Re: Review Request 66025: Converted `JSON::String` to bool and numbers.

Posted by Qian Zhang <zh...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/66025/
-----------------------------------------------------------

(Updated March 14, 2018, 9:30 a.m.)


Review request for mesos, Benjamin Mahler and Chun-Hung Hsiao.


Changes
-------

Addressed review comments.


Bugs: MESOS-8656
    https://issues.apache.org/jira/browse/MESOS-8656


Repository: mesos


Description
-------

Previsouly when converting a JSON to a protobuf message in stout, we
cannot handle the fields like below which are actually valid.
  "int32": "-2147483647"
  "int64": "-9223372036854775807"
  "float": "1.5"
  "bool": "true"
The conversion will fail with an error like "Not expecting a JSON string
for field 'int32'".

So in this patch, `Try<Nothing> operator()(const JSON::String& string)`
was enhanced to be able to convert `JSON::String` to bool and numbers.
This is to match Google's json -> protobuf behavior, see the doc below
for details:
https://developers.google.com/protocol-buffers/docs/proto3#json


Diffs (updated)
-----

  3rdparty/stout/include/stout/protobuf.hpp 4a1605e5130dbf7e8286dbb43d0d04ab4394e79a 


Diff: https://reviews.apache.org/r/66025/diff/3/

Changes: https://reviews.apache.org/r/66025/diff/2-3/


Testing
-------

sudo make check


Thanks,

Qian Zhang