NullAway: Practical Type-Based Null Safety for Java
Autor: | Manu Sridharan, Lazaro Clapp, Subarno Banerjee |
---|---|
Rok vydání: | 2019 |
Předmět: |
FOS: Computer and information sciences
Java Computer science Programming language business.industry 020207 software engineering 02 engineering and technology Static analysis computer.software_genre Software Engineering (cs.SE) Computer Science - Software Engineering Annotation Software Type checking 020204 information systems 0202 electrical engineering electronic engineering information engineering Crash data Android (operating system) business computer computer.programming_language Compile time |
Zdroj: | ESEC/SIGSOFT FSE |
DOI: | 10.48550/arxiv.1907.02127 |
Popis: | NullPointerExceptions (NPEs) are a key source of crashes in modern Java programs. Previous work has shown how such errors can be prevented at compile time via code annotations and pluggable type checking. However, such systems have been difficult to deploy on large-scale software projects, due to significant build-time overhead and / or a high annotation burden. This paper presents NullAway, a new type-based null safety checker for Java that overcomes these issues. NullAway has been carefully engineered for low overhead, so it can run as part of every build. Further, NullAway reduces annotation burden through targeted unsound assumptions, aiming for no false negatives in practice on checked code. Our evaluation shows that NullAway has significantly lower build-time overhead (1.15X) than comparable tools (2.8-5.1X). Further, on a corpus of production crash data for widely-used Android apps built with NullAway, remaining NPEs were due to unchecked third-party libraries (64%), deliberate error suppressions (17%), or reflection and other forms of post-checking code modification (17%), never due to NullAway's unsound assumptions for checked code. Comment: Pre-print of ESEC/FSE 2019 paper |
Databáze: | OpenAIRE |
Externí odkaz: |