Software Open Access

NullAway: Practical Type-Based Null Safety for Java

Subarno Banerjee; Lazaro Clapp; Manu Sridharan


JSON Export

{
  "files": [
    {
      "links": {
        "self": "https://zenodo.org/api/files/e7d9988b-0cef-42ef-a2b5-ad6ff41e7d90/NullAway.zip"
      }, 
      "checksum": "md5:75e5d0832a11be2694576dc28db1d7e2", 
      "bucket": "e7d9988b-0cef-42ef-a2b5-ad6ff41e7d90", 
      "key": "NullAway.zip", 
      "type": "zip", 
      "size": 1255519
    }
  ], 
  "owners": [
    71323
  ], 
  "doi": "10.5281/zenodo.3267950", 
  "stats": {
    "version_unique_downloads": 4.0, 
    "unique_views": 25.0, 
    "views": 37.0, 
    "downloads": 4.0, 
    "unique_downloads": 4.0, 
    "version_unique_views": 25.0, 
    "volume": 5022076.0, 
    "version_downloads": 4.0, 
    "version_views": 37.0, 
    "version_volume": 5022076.0
  }, 
  "links": {
    "doi": "https://doi.org/10.5281/zenodo.3267950", 
    "conceptdoi": "https://doi.org/10.5281/zenodo.3267949", 
    "bucket": "https://zenodo.org/api/files/e7d9988b-0cef-42ef-a2b5-ad6ff41e7d90", 
    "conceptbadge": "https://zenodo.org/badge/doi/10.5281/zenodo.3267949.svg", 
    "html": "https://zenodo.org/record/3267950", 
    "latest_html": "https://zenodo.org/record/3267950", 
    "badge": "https://zenodo.org/badge/doi/10.5281/zenodo.3267950.svg", 
    "latest": "https://zenodo.org/api/records/3267950"
  }, 
  "conceptdoi": "10.5281/zenodo.3267949", 
  "created": "2019-07-03T20:37:34.854710+00:00", 
  "updated": "2019-07-17T16:34:54.678231+00:00", 
  "conceptrecid": "3267949", 
  "revision": 3, 
  "id": 3267950, 
  "metadata": {
    "access_right_category": "success", 
    "doi": "10.5281/zenodo.3267950", 
    "description": "<p>NullAway is a tool to help eliminate&nbsp;<code>NullPointerException</code>s (NPEs) in your Java code. To use NullAway, first add&nbsp;<code>@Nullable&nbsp;</code>annotations in your code wherever a field, method parameter, or return value may be&nbsp;<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&nbsp;<code>null</code>. NullAway is similar to the type-based nullability checking in the Kotlin and Swift languages, and the&nbsp;<a href=\"https://checkerframework.org/\">Checker Framework</a>&nbsp;and&nbsp;<a href=\"http://fbinfer.com/docs/eradicate.html\">Eradicate</a>&nbsp;null checkers for Java.</p>\n\n<p>NullAway is&nbsp;<em>fast</em>. It is built as a plugin to&nbsp;<a href=\"http://errorprone.info/\">Error Prone</a>&nbsp;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&nbsp;<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>", 
    "license": {
      "id": "MIT"
    }, 
    "title": "NullAway: Practical Type-Based Null Safety for Java", 
    "relations": {
      "version": [
        {
          "count": 1, 
          "index": 0, 
          "parent": {
            "pid_type": "recid", 
            "pid_value": "3267949"
          }, 
          "is_last": true, 
          "last_child": {
            "pid_type": "recid", 
            "pid_value": "3267950"
          }
        }
      ]
    }, 
    "language": "eng", 
    "version": "0.6.4", 
    "keywords": [
      "static code analysis", 
      "pluggable type systems", 
      "null safety", 
      "java"
    ], 
    "publication_date": "2019-07-01", 
    "creators": [
      {
        "affiliation": "University of Michigan", 
        "name": "Subarno Banerjee"
      }, 
      {
        "affiliation": "Uber Technologies, Inc.", 
        "name": "Lazaro Clapp"
      }, 
      {
        "affiliation": "University of California, Riverside", 
        "name": "Manu Sridharan"
      }
    ], 
    "meeting": {
      "acronym": "ESEC/FSE '19", 
      "url": "https://esec-fse19.ut.ee/", 
      "dates": "26-30 August, 2019", 
      "place": "Tallinn, Estonia", 
      "title": "27th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering"
    }, 
    "access_right": "open", 
    "resource_type": {
      "type": "software", 
      "title": "Software"
    }, 
    "related_identifiers": [
      {
        "scheme": "doi", 
        "relation": "isVersionOf", 
        "identifier": "10.5281/zenodo.3267949"
      }
    ]
  }
}
37
4
views
downloads
All versions This version
Views 3737
Downloads 44
Data volume 5.0 MB5.0 MB
Unique views 2525
Unique downloads 44

Share

Cite as