Summary: | NPE in Java Model Presentation | ||
---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Darin Wright <darin.eclipse> |
Component: | Debug | Assignee: | Jared Burns <jared_burns> |
Status: | RESOLVED DUPLICATE | QA Contact: | |
Severity: | normal | ||
Priority: | P1 | CC: | jared_burns |
Version: | 2.0 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Windows 2000 | ||
Whiteboard: |
Description
Darin Wright
2001-10-19 12:14:54 EDT
Fixed. I changed the implementation of JDIDebugElement#targetRequestFailed to always throw an exception. We used to hide VMDisconnectedExceptions when the VM was terminating. However, there are only a handful of situations where we want to ignore VMDisconnect's, so those are now coded excplicitly. Anywhere else, a disconnect is an unexpected exception that should be propagated to the client. Running the test suite now produces no "Unable to excecute Runnable" dialogs. (re-assigning for verification). Please verify. I believe this the cause of a lot of recent trouble on Linux. We're throwing VMDisconnected exceptions quite a lot now. It's a timing issue, so the bug cannot be reproduced with 100% accuracy, however it's not hard to make it happen. It might take a few tries to see the problem but: 1. Debug a program to a breakpoint. 2. Resume it. 3. We throw a VMDisconnectedException which propogates to the user. Why is the exception being thrown - are we updating/accessing a debug model element after the VM has exited? The VMDisconnected exception is thrown as we send a "resume" command to the VM. It then happily finishes execution BEFORE we have had a chance in the JDI packet receive manager to get the reply packet for the resume command. Attempting to get the replay packet is what gets the IOException that is thrown as a VMDisconnected. Jared started looking into better ways of handling these cases. Assigning to Jared, as he has been enhancing the disconnection support. Unsure if this is still a problem. |