Turning Eclipse Against Itself: Improving the Quality of Eclipse Plugins

While many researchers have used Eclipse as a platform for developing software engineering and program analysis tools, Eclipse itself presents an excellent subject for analysis and study. Eclipse represents one of the biggest Java projects ever created. While surprisingly robust, Eclipse still suffers from serious bugs that lead to crashes and resource exhaustion.

Eclipse is a collaborative development projects, with its core developers located across multiple continents. Furthermore, hundreds of available plugins are developed by programmers with varying levels of familiarity with the intricacies of Eclipse APIs. As a result of API misuse, complex application-specific bugs are introduced.

In this paper we describe common patterns in Eclipse code and propose lightweight analyses for finding their misuse. Bugs addressed in this paper often do not immediately exhibit themselves and are often discovered after deployment. In our experiments, we find a total of 68 likely errors in Eclipse sources that violate the coding patterns we describe. In addition to these lightweight bug checkers, we also propose the use of Eclipse templates extracted from existing Eclipse code as a way to capture important coding rules.