| Summary: | ClassNotLoadedException while performing completion on local variables in Display View | ||
|---|---|---|---|
| Product: | [Eclipse Project] JDT | Reporter: | Frederic Fusier <frederic_fusier> |
| Component: | Debug | Assignee: | Darin Wright <darin.eclipse> |
| Status: | CLOSED FIXED | QA Contact: | |
| Severity: | major | ||
| Priority: | P3 | CC: | david_audel |
| Version: | 3.1 | ||
| Target Milestone: | 3.1 M5 | ||
| Hardware: | PC | ||
| OS: | Windows XP | ||
| Whiteboard: | |||
|
Description
Frederic Fusier
The exception does not occur only while performing code completion but also while inspecting or running code in this view... However, there's no problem in Variables view. Code assist, inspect and run work perfectly. Please specify test case. It think it happens all the time whereever I have set a breakpoint. But I can precise the scenario: I was running ASTConverter15Test and put a breakpoint in test0140 method. I tried to inspect typeBinding.isTopLevel() and had started to type "typ" and then activated code completion => exception. After that I've written the entire code by hand "typeBinding.isTopLevel()", select it entirely and try to inspect it => exception. Remove .isTopLevel() (ie. have only "typeBinding") in Display view, select it and inspect => exception. Empty all code in Display view and try to run code completion => exception. However, nobodyelse in jdt.core team encounters this problem...!? I'll try a reboot of my box... After having investigated a little bit more, it appears that it only happens on certain circumstances. So, a scenario was really necessary... Using comment 3 scenario with ASTConverter15Test.test0140, we succeed to reproduce the exception on several different boxes (even on Linux). Decrease severity as it does not happen all the time... The problem seems to occur only when ASTConverter15Test.test0140 is run alone.
To launch test0140 alone replace the suite() method by
public static Test suite() {
if (false) {
return new Suite(ASTConverter15Test.class);
}
TestSuite suite = new Suite(ASTConverter15Test.class.getName());
suite.addTest(new ASTConverter15Test("test0140"));
return suite;
}
M5 candidate Fixed. Added checks to manage ClassNotLoadedException. This exception doesn't mean that something wrong happened, just that the state of the VM is such that the referenced type is not yet loaded in the current classloader. This happens when an application has a complex classloader system, like Eclipse. ASTEvaluationEngine, DisplayCompletionProcessor - local variables are now ignored if their declaring type is not yet loaded. Please verify, Darin W. Verified. |