Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 381004

Summary: Exception raised by CellLabelProvider.getToolTipText(Object) are not handled by Workbench Exception Handler and cause an HTTP ERROR 500
Product: [RT] RAP Reporter: Sebastien Arod <sebastien.arod>
Component: JFaceAssignee: Project Inbox <rap-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: 1.4   
Target Milestone: 2.0 M1   
Hardware: All   
OS: All   
Whiteboard:
Attachments:
Description Flags
Small project reproducing the issue none

Description Sebastien Arod CLA 2012-05-30 05:48:32 EDT
Build Identifier: 

Exception raised by CellLabelProvider.getToolTipText(Object) are not handled by Workbench exception handler and cause an HTTP ERROR 500


I tried to debug and compare the behavior between RAP and RCP on this.

In both RCP and RAP the exceptions are catched in org.eclipse.ui.internal.Workbench.runEventLoop(IExceptionHandler, Display) and passed to the ExceptionHandler class for handling.

ExceptionHandler itself simply throws exception inheriting ThreadDeath 
and delegates the handling for other exceptions to WorkbenchAdvisor.eventLoopException(Throwable).

However in RAP RWTLifeCycle.continueLifeCycle() wraps the original exception in a PhaseExecutionError (which extend ThreadDeath) before it reaches the handler so the exception is not logged by ExceptionHandler but it is instead re-thrown and handled at servlet level which cause the HTTP 500.



Reproducible: Always

Steps to Reproduce:
Using the attached project place the mouse over the V3 value and wait for the tooltip.

When the tooltip is computed the exception is raised and the user session stops with HTTP 500
Comment 1 Sebastien Arod CLA 2012-05-30 05:50:52 EDT
Created attachment 216456 [details]
Small project reproducing the issue

attaching small project reproducing the issue
Comment 2 Ivan Furnadjiev CLA 2012-06-25 05:40:18 EDT
That's true. We have a custom cell tooltip implementation that utilize the CellLabelProvider#getToolTipText method. I will look on it more deeply in the next days.
Comment 3 Ivan Furnadjiev CLA 2012-06-26 06:07:12 EDT
Fixed with commit e44cf567b0e9871387a823507c596c2e021c6242. Now the code for getting the cell tooltip is executed in a SafeRunnable.