[ 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)