Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: for the plan.

Jump to: navigation, search

Extract method revival

Project Lead: Benjamin Muskalla (IRC: benny`work)

Mentor: Markus Keller

This project is part of the Google Summer of Code 2009


JDT already provides several very good refactorings like Extract method. Despite the fact they are behave very good there are still some unresolved bugs and open enhancement requests. The project will take the "Extract method" refactoring to the next step by resolving all (possible) bugs and trying to enhance the current functionality. As it is one of the most used refactorings in day-to-day development it really deserves some work to get all details and edge cases fixed.

Primary goals


Glass.gif Needs some investigation/research

Progress.gif Work in progress

Ok green.gif Bug fixed (JDT 3.6 I-Builds)

Glass.gif bug 79994: [extract method] add parameter if extracted out of inner class

Glass.gif bug 183189: [extract method] Extract Method's occurrence finder can't handle constants in signature

Progress.gif bug 58648: [extract method] disregard 'this.' when finding duplicates (was: find simple aliasing)

Progress.gif bug 179281: [extract method] from constructor doesn't handle final members of class

Progress.gif bug 143616: [extract method] problem with shadowed subclass methods

Progress.gif bug 64245: [extract method] creates un-needed code

Progress.gif bug 48056: [extract method] Extract method and continue

Progress.gif bug 264606: [extract method] extracting return value results in compile error

Progress.gif bug 273537: [extract method] Extract method fails when there is exception-throwing in the area

Ok green.gif bug 50607: [extract method] Name ambigous return value in error message

Ok green.gif bug 231568: [extract method] Ambiguous return value, but only one local variable is used after block

Ok green.gif bug 152004: [extract method] should declare method static if extracted from anonymous in static method

Ok green.gif bug 160853: [extract method] Does not replace similar code in parent class of anonymous class

Ok green.gif bug 213519: [extract method] Missing return value, while extractiong code out of a loop

Ok green.gif bug 97413: [extract method] missing return type when code can throw exception

Ok green.gif bug 101233: [extract method] remember selected access modifier


Here is a complete list of the milestones and release candidates planned for this plugin.

Milestone Date Planned items
M1 April 30 TBD
M2 May 26 TBD
M3 June 21 TBD
M4 July 3 TBD
M5 July 17 TBD
RC1 August 2 TBD
Pencils down August 10 -

Community Involvement

Getting the source

As all the changes made to the Extract method refactoring are done by patching the existing JDT bundles there is no seperate source repository. Either you wait that JDT includes the patches in one of the next I builds or you can checkout the JDT bundles yourself and apply the patches. All changes will be contributed trough the corresponding bugs in bugzilla (see above).

Open issues

To see all the open issues and feature requests of this project, take a look at this query.

New ideas

Do you have a great idea for the refactoring? Just open a new feature request.

Back to the top