Unveiling Exception Handling Bug Hazards in Android based on GitHub and Google Code Issues
by Coelho, Roberta and Almeida, Lucas and Gousios, Georgios and van Deursen, Arie
You can get a pre-print version from here.
You can view the publisher's page here.
See the paper's associated code repository: gousiosg/java-stacktrace-analysis
Abstract
This paper reports on a study mining the exception stack traces included in 159,048 issues reported on Android projects hosted in GitHub (482 projects) and Google Code (157 projects). The goal of this study is to investigate whether stack trace information can reveal bug hazards related to exception handling code that may lead to a decrease in application robustness. Overall 6,005 exception stack traces were extracted, and subjected to source code and bytecode analysis. The outcomes of this study include the identification of the following bug hazards: (i) unexpected cross-type exception wrappings (for instance, trying to handle an instance of OutOfMemoryError “hidden” in a checked exception) which can make the exception-related code more complex and negatively impact the application robustness; (ii) undocumented runtime exceptions thrown by both the Android platform and third party libraries; and (iii) undoc- umented checked exceptions thrown by the Android Platform. Such undocumented exceptions make difficult, and most of the times infeasible for the client code to protect against unforeseen situations that may happen while calling third-party code. This study provides further insights on such bug hazards and the robustness threats they impose to Android apps as well as to other systems based on the Java exception model.
Bibtex record
@inproceedings{CAGD15, author = {Coelho, Roberta and Almeida, Lucas and Gousios, Georgios and van Deursen, Arie}, title = {Unveiling Exception Handling Bug Hazards in Android based on GitHub and Google Code Issues}, booktitle = {Proceedings of the 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories (MSR)}, year = {2015}, month = may, location = {Florence, Italy}, pages = {134-145}, doi = {10.1109/MSR.2015.20}, url = {/pub/android-stacks.pdf}, github = {gousiosg/java-stacktrace-analysis}, speakerdeck = {24731ec0a49f4724a82dd7b9e1f870f3} }