Subarno Banerjee
Lazaro Clapp
Manu Sridharan
2019-07-01
<p>NullAway is a tool to help eliminate <code>NullPointerException</code>s (NPEs) in your Java code. To use NullAway, first add <code>@Nullable </code>annotations in your code wherever a field, method parameter, or return value may be <code>null</code>. Given these annotations, NullAway performs a series of type-based, local checks to ensure that any pointer that gets dereferenced in your code cannot be <code>null</code>. NullAway is similar to the type-based nullability checking in the Kotlin and Swift languages, and the <a href="https://checkerframework.org/">Checker Framework</a> and <a href="http://fbinfer.com/docs/eradicate.html">Eradicate</a> null checkers for Java.</p>
<p>NullAway is <em>fast</em>. It is built as a plugin to <a href="http://errorprone.info/">Error Prone</a> and can run on every single build of your code. In our measurements, the build-time overhead of running NullAway is usually less than 10%. NullAway is also <em>practical</em>: it does not prevent all possible NPEs in your code, but it catches most of the NPEs we have observed in production while imposing a reasonable annotation burden.</p>
https://doi.org/10.5281/zenodo.3267950
oai:zenodo.org:3267950
eng
Zenodo
https://doi.org/10.5281/zenodo.3267949
info:eu-repo/semantics/openAccess
MIT License
https://opensource.org/licenses/MIT
ESEC/FSE '19, 27th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Tallinn, Estonia, 26-30 August, 2019
static code analysis
pluggable type systems
null safety
java
NullAway: Practical Type-Based Null Safety for Java
info:eu-repo/semantics/other