Data and Documentation
Open Data Policy
FAQ
EN
DE
FR
Suchbegriff
Advanced search
Publication
Back to overview
Tracking Null Checks in Open-Source {Java} Systems
Type of publication
Peer-reviewed
Publikationsform
Proceedings (peer-reviewed)
Author
Osman Haidar, Leuenberger Manuel, Lungu Mircea, Nierstrasz Oscar,
Project
Agile Software Analysis
Show all
Proceedings (peer-reviewed)
Title of proceedings
Proceedings of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER)
DOI
10.1109/saner.2016.57
Open Access
URL
http://scg.unibe.ch/archive/papers/Osma16a.pdf
Type of Open Access
Website
Abstract
It is widely acknowledged that null values should be avoided if possible or carefully used when necessary in Java code. The careless use of null has negative effects on maintainability, code readability, and software performance. However, a study on understanding null usage is still missing. In this paper we analyze null checks in 810 open-source Java systems and manually inspect 100 code samples to understand when and why developers use null. We find that 35% of all conditional statements contain null checks. A deeper investigation reveals many questionable practices with respect to using null. Uninitialized member variables, returning null in methods, and passing null as a method parameter are among the most recurrent reasons for introducing null checks. Developers often return null in methods to signal errors instead of throwing a proper exception. As a result, 71% of the values checked for null are returned from method calls. Our study provides a novel evidence of an overuse of null checks and of the null value itself in Java, and at the same time, reveals actionable recommendations to reduce this null usage.
-