Publication Type
Journal Article
Version
acceptedVersion
Publication Date
1-2020
Abstract
Despite huge software engineering efforts and programming language support, resource and memory leaks are still a troublesome issue, even in memory-managed languages such as Java. Understanding the properties of leak-inducing defects, how the leaks manifest, and how they are repaired is an essential prerequisite for designing better approaches for avoidance, diagnosis, and repair of leak-related bugs. We conduct a detailed empirical study on 452 issues from 10 large opensource Java projects. The study proposes taxonomies for the leak types, for the defects causing them, and for the repair actions. We investigate, under several aspects, the distributions within each taxonomy and the relationships between them. We find that manual code inspection and manual runtime detection are still the main methods for leak detection. We find that most of the errors manifest on error-free execution paths, and developers repair the leak defects in a shorter time than non-leak defects. We also identify 13 recurring code transformations in the repair patches. Based on our findings, we draw a variety of implications on how developers can avoid, detect, isolate and repair leakrelated bugs.
Keywords
empirical study, memory leak, resource leak, leak detection, root-cause analysis, repair patch
Discipline
Programming Languages and Compilers | Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
Empirical Software Engineering
Volume
25
Issue
1
First Page
678
Last Page
718
ISSN
1382-3256
Identifier
10.1007/s10664-019-09731-8
Publisher
Springer Verlag (Germany)
Citation
GHANAVATI, Mohammadreza; COSTA, Diego; SEBOEK, Janos; LO, David; and ANDRZEJAK, Artur.
Memory and resource leak defects and their repairs in Java projects. (2020). Empirical Software Engineering. 25, (1), 678-718.
Available at: https://ink.library.smu.edu.sg/sis_research/4501
Copyright Owner and License
Authors
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1007/s10664-019-09731-8