Community
Participate
Working Groups
See Bug 18305. An NPE in the runtime workbench launch configuration prevents me from opening the launch configuration dialog. Whereever possible, the platform launch config support should defend against errors in the delegates. An error in one delegate (in this case, PDE) shouldn't cripple the platform.
*** Bug 18896 has been marked as a duplicate of this bug. ***
Need to determine if we should guard against other extension points as well.
Propose to use safe runnables when traversing/delegating to "event handlers". The pattern in the core and UI seems to be that when delegating to a list of handlers, protection should be used such that if one handler "bombs", the rest of the handlers get to handle the event.
Ideally, we should guard against the following: (1) For all extension points that we define, we must guard against failure when instantiating an extension. Log the error, and throw out the extension. This should not effect other instantiations (extensions) of the same extension point. (2) Any place we have listener lists, handling callbacks, guard against failure, such that if one listener fails, subsequent listeners still receive callbacks. This includes: * IDebugEventFilter * IDebugEventSetListener * IExpressionListener * ILaunchListener * IJavaBreakpointListener * IJavaHotCodeReplaceListener * IVMInstallChangedListener NOTE: This does not address the problem this bug was logged for. Unclear if we should change function at this point.
Our current standpoint on this is to defer. No changes planned for 2.0.
Consider for 2.1
Added "bullet proofing" for: * Debug event filters * Debug event listeners * Breakpoint listeners * Expression listeners * Launch listeners * Launch configuration listeners * Stream monitor listeners * Java breakpoint listeners I believe these are the most important. Any others should be opened as new bug reports. Fixed.
Please verify, Darin (S).
Marking as fixed.
Shouldn't the JDIDebugPlugin ISafeRunnable's handleException(Throwable) methods, log the exception?
It's optional - the platform already logs the errors.
Verified code.