The extract method refactoring fails when applied on
methods of anonymous inner classes having
syntactically equal regions:
BEFORE: (> indicates extract method region)
public class Test {
public void f() {
A a1 = new A() {
public void g() {
> callSomethingMember1();
> callSomethingMember2();
}
};
A a2 = new A() {
public void g() {
callSomethingMember1();
callSomethingMember2();
}
};
}
}
AFTER: (/* comments stripped */)
public class Test {
public void f() {
A a1 =
new A() {
public void g() {
extractedMethod();
}
private void extractedMethod() {
callSomethingMember1();
callSomethingMember2();
}
};
A a2 =
new A() {
public void g() {
extractedMethod();
}
};
}
}
BUG: The second classe misses the extractMethod()
definition
Logged In: YES
user_id=476481
I am actively looking at this problem now. Upped priority.