A catalogue of bug patterns for exception handling in aspect-oriented programs

Aspects allow a developer to externally add new functionality to a program. This additional functionality may also throw new exceptions that will flow through the program execution until they are handled. Moreover, aspects can also be used to handle exceptions thrown by base code or even other aspects. Unfortunately, exceptions thrown by aspects --- or exceptions that should be handled by them --- may flow through the program execution in unexpected ways leading to failures such as uncaught exceptions or exceptions being caught by the wrong handlers. In a previous empirical study we investigated the causes of such failures in Aspect-Oriented programs. In this paper we present causes of such failures as a catalogue of bug patterns for exception handling in Aspect-Oriented programs.

[1]  Frank Buschmann,et al.  A system of patterns , 1995 .

[2]  Matthew Alexander Webster,et al.  Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools , 2004 .

[3]  Vander Alves,et al.  PDC: Persistent Data Collections pattern , 2001 .

[4]  Eitan Farchi,et al.  Concurrent bug patterns and how to test them , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[5]  Gary T. Leavens,et al.  MAO: Ownership and Effects for More Effective Reasoning About Aspects , 2007, ECOOP.

[6]  Mira Mezini,et al.  Conquering aspects with Caesar , 2003, AOSD '03.

[7]  Panagiotis Louridas,et al.  Static code analysis , 2006, IEEE Software.

[8]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[9]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture Volume 1: A System of Patterns , 1996 .

[10]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[11]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture , 1996 .

[12]  Sérgio Soares,et al.  Distribution and persistence as aspects , 2006, Softw. Pract. Exp..

[13]  Andrew Clement,et al.  Large-scale AOSD for middleware , 2004, AOSD '04.

[14]  Anand R. Tripathi,et al.  Issues with Exception Handling in Object-Oriented Systems , 1997, ECOOP.

[15]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[16]  Stefan Wagner,et al.  An Evaluation of Two Bug Pattern Tools for Java , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[17]  Tzilla Elrad,et al.  Aspect-Oriented Software Development , 2004 .

[18]  Carlos José Pereira de Lucena,et al.  Assessing the Impact of Aspects on Exception Flows: An Exploratory Study , 2008, ECOOP.

[19]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[20]  Jianjun Zhao,et al.  On Identifying Bug Patterns in Aspect-Oriented Programs , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[21]  Paulo Borba,et al.  Distribution and persistence as aspects , 2006 .

[22]  John B. Goodenough,et al.  Exception handling: issues and a proposed notation , 1975, CACM.

[23]  Eric Allen Bug Patterns in Java , 2002 .

[24]  Cecília M. F. Rubira,et al.  A comparative study of exception handling mechanisms for building dependable object-oriented software , 2001, J. Syst. Softw..