  During the life cycle of software development, developers have to fix
different kinds of bugs reported by testers or end users. The efficiency and
effectiveness of fixing bugs have a huge impact on the reliability of the
software as well as the productivity of the development team. Software
companies usually spend a large amount of money and human resources on the
testing and bug fixing departments. As a result, a better and more reliable way
to fix bugs is highly desired by them. In order to achieve such goal, in depth
studies on the characteristics of bug fixes from well maintained, highly
popular software projects are necessary. In this paper, we study the bug fixing
histories extracted from the Eclipse project, a well maintained, highly popular
open source project. After analyzing more than 36,000 bugs that belongs to
three major kinds of exception types, we are able to reveal some common fix
types that are frequently used to fix certain kinds of program exceptions. Our
analysis shows that almost all of the exceptions that belong to a certain
exception can be fixed by less than ten fix types. Our result implies that most
of the bugs in software projects can be and should be fixed by only a few
common fix patterns.
