Summary: | ArrayIndexOutOfBoundsException during delete of members | ||
---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Gunnar Wagenknecht <gunnar> |
Component: | Core | Assignee: | Olivier Thomann <Olivier_Thomann> |
Status: | VERIFIED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | P3 | ||
Version: | 2.1 | ||
Target Milestone: | 2.1 RC1 | ||
Hardware: | PC | ||
OS: | Windows 2000 | ||
Whiteboard: |
Description
Gunnar Wagenknecht
2003-02-18 09:28:34 EST
Would you have a test case I could use to reproduce the problem? It looks like the resulting compilation unit contains problems. I will investigate it as soon as I get steps to reproduce. Perhaps, try the following one. Although I'm sure that the compilation unit didn't have compile errors. - import "org.eclipse.jdt.core" - look for "IProblem" - create a new Java project - create a new package in the new Java project - copy IProblem to the new package (Copy & Paste) - also copy missing type and fix the import - select all public static final fields in the Outline View - delete the fields During deletion the exception was thrown. The resulting compilation unit already had some members deleted and thus compile errors occured. Thanks. I am investigating this problem. It looks like the compilation unit is recompiled before all fields have been removed. I also recognizied a performance lost while deleting members in M5. It seems like a seperate operation is invoked for every selected member. There is two problems. I fixed the problem for JDT/Core. We missed a check that we have enough room while generating a .class file during this operation. I will run all tests prior to release. The second problem is a performance issue against JDT/UI. The UI calls a delete operation for each field instead of batching it for all the fields. Batching this operation would improve the numerous deltas sent during the deletion of all fields. I opened a separate bug report against JDT/UI for this issue. See bug 32138. Thanks Fixed and released in 2.1 stream. Thanks for the excellent test case and steps to reproduce. It helps a lot to track down the bug. Verified. |