Community
Participate
Working Groups
I20070724-0800 Given: package test; public class UFO { private int x; private int y; private int z; private String homePlanet; public UFO(int x, int y, int z, String homePlanet) { this.x= x; this.y= y; this.z= z; this.homePlanet= homePlanet; } public String toString() { return "An UFO from " + homePlanet + "is at position " + "[" + x + ", " + y + ", " + z + "]"; } } 1. Select UFO 2. Extract Class... 3. Create Getters 4. OK Is: java.lang.IllegalArgumentException at org.eclipse.jdt.core.dom.ASTNode$NodeList.add(ASTNode.java:1247) at java.util.AbstractList.add(AbstractList.java:91) at org.eclipse.jdt.internal.corext.refactoring.structure.ParameterObjectFactory.createFieldWriteAccess(ParameterObjectFactory.java:292) at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractClassRefactoring.replaceReferences(ExtractClassRefactoring.java:564) at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractClassRefactoring.updateReferences(ExtractClassRefactoring.java:523) at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractClassRefactoring.checkFinalConditions(ExtractClassRefactoring.java:347) at org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run(CheckConditionsOperation.java:83) at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:119) at org.eclipse.ltk.core.refactoring.PerformChangeOperation.run(PerformChangeOperation.java:209) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1797) at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:113)
This is caused by the this qualifier. I will look into it.
Hmm, it does not make sense to have separate checkboxes for getters & setters. They will be merged.
Created attachment 74935 [details] Patch
patch released > 20070731 I still see this exception with the following test case: - import org.eclipse.compare - Open Hunk.java, extract a class from fNewStart, fNewLength java.lang.IllegalArgumentException at org.eclipse.jdt.core.dom.ASTNode$NodeList.add(ASTNode.java:1247) at java.util.AbstractList.add(AbstractList.java:91) at org.eclipse.jdt.internal.corext.refactoring.structure.ParameterObjectFactory.createFieldWriteAccess(ParameterObjectFactory.java:366) at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractClassRefactoring.replaceReferences(ExtractClassRefactoring.java:567) at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractClassRefactoring.updateReferences(ExtractClassRefactoring.java:512) at org.eclipse.jdt.internal.corext.refactoring.structure.ExtractClassRefactoring.checkFinalConditions(ExtractClassRefactoring.java:338) at org.eclipse.ltk.core.refactoring.CheckConditionsOperation.run(CheckConditionsOperation.java:83) at org.eclipse.ltk.core.refactoring.CreateChangeOperation.run(CreateChangeOperation.java:119) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1797) at org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:113)
(with 'Create getter and setter' checked)
Created attachment 75022 [details] Patch for Martin Even though both are IllegalArgumentExceptions both cases are different. Martins trace is caused by an access in a non ControlStatement block.
patch released > 20070731