[ 
https://issues.apache.org/jira/browse/THRIFT-807?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12891337#action_12891337
 ] 

Roger Meier commented on THRIFT-807:
------------------------------------

I'm not sure if that's a JavaScript issue, probably I did not understand the 
real problem before!

Due to the fact, that all Languages supported by Thrift do initialize types, 
objects, etc. in a different ways, the base types might be initialized 
correctly by setting them to 0. => null is a JavaScript specific thing!

I think it is required to extend the 
[[ThriftTypes|http://wiki.apache.org/thrift/ThriftTypes]] Definition by 
enforcing default values for all ThriftTypes. So that not initialized Types or 
Objects are absolutely the same on wire.




> JavaScript: Initialization of Base Types with 0 instead of null
> ---------------------------------------------------------------
>
>                 Key: THRIFT-807
>                 URL: https://issues.apache.org/jira/browse/THRIFT-807
>             Project: Thrift
>          Issue Type: Bug
>          Components: Compiler (JavaScript)
>    Affects Versions: 0.3
>            Reporter: Roger Meier
>         Attachments: THRIFT-807_initialize_with_null.patch, 
> THRIFT-807_initialize_with_null.v2.patch
>
>
> I had a problem with the exception avaliable on the tutorial. 
> i32 calculate(1:i32 logid, 2:Work w) throws (1:InvalidOperation ouch),
> It couldn't be thrown because initialization of numeric base types is done 
> with 0 instead of null and the checks do compare against null.
> This was not visible with the Tests provided with first patch for JavaScript 
> bindings above, the ThriftTest.thrift definition does not have a combination 
> of a base type return value and an exception.
> I've made a patch that initializes the base types I16,I32, I64 and DOUBLE 
> with null. This could probably solve other issues as well
> Regards
> Roger

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to