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

ASF GitHub Bot commented on THRIFT-4530:
----------------------------------------

GitHub user msridhar opened a pull request:

    https://github.com/apache/thrift/pull/1522

    THRIFT-4530: add @Nullable annotations to generated Java code

    Use our own `org.apache.thrift.annotations.Nullable` annotation to avoid
    introducing a third-party dependency

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/msridhar/thrift THRIFT-4530

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/thrift/pull/1522.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1522
    
----
commit 6bc560a1a55a1fca720b4fe7057f25c06fc358d1
Author: Manu Sridharan <msridhar@...>
Date:   2018-03-20T21:45:22Z

    THRIFT-4530: add @Nullable annotations to generated Java code
    
    Use our own `org.apache.thrift.annotations.Nullable` type to avoid
    introducing a third-party dependency

----


> proposal: add nullability annotations to generated Java code
> ------------------------------------------------------------
>
>                 Key: THRIFT-4530
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4530
>             Project: Thrift
>          Issue Type: New Feature
>          Components: Java - Compiler
>            Reporter: Manu Sridharan
>            Priority: Major
>
> I'd like to propose (optionally) including {{@Nullable}} annotations in 
> Thrift-generated Java code.  I'm the main author of NullAway 
> ([https://github.com/uber/NullAway)] and we'd like to better support users 
> who are using Thrift.  The change would involve changing the Java code 
> generator to include {{@Nullable}} annotations on every field, method return 
> value, and method parameter in the public API of generated code that may be 
> null.  With these annotations, NullAway users will get warnings when their 
> client code is missing appropriate null checks.  Also, IDEs like IntelliJ 
> will give better warnings about missing null checks.  As part of this change, 
> I would also add support to NullAway for understanding {{isSetX()}} methods 
> to avoid excessive false positives.
> Regarding which {{@Nullable}} annotation to use, Thrift seems to try to 
> minimize third-party dependencies, but we could simply include a new Thrift 
> {{@Nullable}} annotation, and it will work fine with NullAway and most other 
> tools.
> I have a WIP patch to generate these annotations, but I wanted to get 
> feedback from the maintainers before opening a PR.  We could of course make 
> the annotation generation optional and default it to being off, if desired.  
> Anyway, thoughts / feedback welcome.  Thanks!



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to