Community
Participate
Working Groups
JDT/UI optimized renamve method refactorings via bug 351410. After that change several ot.refactoring tests like RenameVirtualMethodInClassTests.testUpdateReferenceToPrivateRoleMethodInCallinBinding started to fail with: org.eclipse.core.runtime.AssertionFailedException: assertion failed: Search for method declaration did not find original element: void m1() [in R [in T [in T.java [in p [in src [in TestProject1532865613305]]]]]] at org.eclipse.core.runtime.Assert.isTrue(Assert.java:110) at org.eclipse.jdt.internal.corext.refactoring.rename.RippleMethodFinder2.findAllRippleMethods(RippleMethodFinder2.java:195) at org.eclipse.jdt.internal.corext.refactoring.rename.RippleMethodFinder2.getAllRippleMethods(RippleMethodFinder2.java:170) at org.eclipse.jdt.internal.corext.refactoring.rename.RippleMethodFinder2.getRelatedMethods(RippleMethodFinder2.java:163) at org.eclipse.jdt.internal.corext.refactoring.rename.RenameMethodProcessor.initializeMethodsToRename(RenameMethodProcessor.java:248) at org.eclipse.jdt.internal.corext.refactoring.rename.RenameMethodProcessor._OT$callOrig(RenameMethodProcessor.java:386) at org.eclipse.jdt.internal.corext.refactoring.rename.RenameVirtualMethodProcessor._OT$callOrig(RenameVirtualMethodProcessor.java:146) at org.objectteams.Team._OT$terminalCallNext(Team.java:598) at org.objectteams.Team._OT$callNext(Team.java:582) at org.eclipse.objectteams.otdt.internal.refactoring.adaptor.RenameAdaptor._OT$callNext(RenameAdaptor.java:82) at org.eclipse.objectteams.otdt.internal.refactoring.adaptor.RenameAdaptor$__OT__RenameVirtualMethodProcessor.doCheckFinalConditions(RenameAdaptor.java:182) at org.eclipse.objectteams.otdt.internal.refactoring.adaptor.RenameAdaptor._OT$callReplace(RenameAdaptor.java:95) at org.objectteams.Team._OT$callAllBindings(Team.java:557) at org.eclipse.jdt.internal.corext.refactoring.rename.RenameVirtualMethodProcessor.callAllBindings(RenameVirtualMethodProcessor.java) at org.eclipse.jdt.internal.corext.refactoring.rename.RenameVirtualMethodProcessor.doCheckFinalConditions(RenameVirtualMethodProcessor.java) at org.eclipse.jdt.internal.corext.refactoring.rename.JavaRenameProcessor.checkFinalConditions(JavaRenameProcessor.java:48) at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:222) at org.eclipse.ltk.core.refactoring.Refactoring.checkAllConditions(Refactoring.java:162) at org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run(CheckConditionsOperation.java:79) at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:119) at org.eclipse.ltk.core.refactoring.PerformChangeOperation.run(PerformChangeOperation.java:207) This happens because the optimization assumes that private methods have no hierarchy. Private role methods, however, do have a hierarchy, so we need to weaken that new check. This will forgo a bit of optimization, but of course correctness is primary.
Fix released for 2.7.1 via http://git.eclipse.org/c/objectteams/org.eclipse.objectteams.git/commit/?id=29b05113905721103d785690c67797456ab7ade4