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 byte code analysis. The out-comes 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 Out Of Memory Error '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) undocumented checked exceptions thrown by the Android Platform. Such undocumented exceptions make it 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.
|Title of host publication||Proceedings - 12th Working Conference on Mining Software Repositories, MSR 2015|
|Publisher||IEEE Computer Society|
|Number of pages||12|
|State||Published - 4 Aug 2015|
|Event||12th Working Conference on Mining Software Repositories, MSR 2015 - Florence, Italy|
|Conference||12th Working Conference on Mining Software Repositories, MSR 2015|
|Period||16/05/15 → 17/05/15|