Memory and resource leak defects and their repairs in Java projects

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...

Full description

Saved in:
Bibliographic Details
Main Authors: GHANAVATI, Mohammadreza, COSTA, Diego, SEBOEK, Janos, LO, David, ANDRZEJAK, Artur
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2020
Subjects:
Online Access:https://ink.library.smu.edu.sg/sis_research/4501
https://ink.library.smu.edu.sg/context/sis_research/article/5504/viewcontent/1810.00101.pdf
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.sis_research-5504
record_format dspace
spelling sg-smu-ink.sis_research-55042021-05-12T02:21:30Z Memory and resource leak defects and their repairs in Java projects GHANAVATI, Mohammadreza COSTA, Diego SEBOEK, Janos LO, David ANDRZEJAK, Artur 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. 2020-01-01T08:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/4501 info:doi/10.1007/s10664-019-09731-8 https://ink.library.smu.edu.sg/context/sis_research/article/5504/viewcontent/1810.00101.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University empirical study memory leak resource leak leak detection root-cause analysis repair patch Programming Languages and Compilers Software Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic empirical study
memory leak
resource leak
leak detection
root-cause analysis
repair patch
Programming Languages and Compilers
Software Engineering
spellingShingle empirical study
memory leak
resource leak
leak detection
root-cause analysis
repair patch
Programming Languages and Compilers
Software Engineering
GHANAVATI, Mohammadreza
COSTA, Diego
SEBOEK, Janos
LO, David
ANDRZEJAK, Artur
Memory and resource leak defects and their repairs in Java projects
description 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.
format text
author GHANAVATI, Mohammadreza
COSTA, Diego
SEBOEK, Janos
LO, David
ANDRZEJAK, Artur
author_facet GHANAVATI, Mohammadreza
COSTA, Diego
SEBOEK, Janos
LO, David
ANDRZEJAK, Artur
author_sort GHANAVATI, Mohammadreza
title Memory and resource leak defects and their repairs in Java projects
title_short Memory and resource leak defects and their repairs in Java projects
title_full Memory and resource leak defects and their repairs in Java projects
title_fullStr Memory and resource leak defects and their repairs in Java projects
title_full_unstemmed Memory and resource leak defects and their repairs in Java projects
title_sort memory and resource leak defects and their repairs in java projects
publisher Institutional Knowledge at Singapore Management University
publishDate 2020
url https://ink.library.smu.edu.sg/sis_research/4501
https://ink.library.smu.edu.sg/context/sis_research/article/5504/viewcontent/1810.00101.pdf
_version_ 1770574876501868544