Bug 574560 - Insulate widget disposal from exceptions in user listeners
Summary: Insulate widget disposal from exceptions in user listeners
Status: NEW
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 4.21   Edit
Hardware: PC All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-SWT-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-06-30 03:41 EDT by Alexandr Miloslavskiy CLA
Modified: 2021-06-30 03:43 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexandr Miloslavskiy CLA 2021-06-30 03:41:39 EDT
When user listeners throw exceptions on dispose paths (such as SWT.Dispose) listeners, this interrupts SWT logic. This in turn causes SWT to believe that widgets are alive while they are in fact destroyed in the OS already. This causes JVM to crash and/or hangs or other misbehavior.

Bug 562233 has set grounds for insulating SWT from listeners. Now the same approach should be extended to more code, for example to all 'Widget.disposeChildren()' overrides.