Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 331335 - [Wizards] Bad implementation of IWizard's dispose() method can prevent the dialog from closing
Summary: [Wizards] Bad implementation of IWizard's dispose() method can prevent the di...
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.7   Edit
Hardware: All All
: P3 major (vote)
Target Milestone: 3.7 M5   Edit
Assignee: Prakash Rangaraj CLA
QA Contact: Prakash Rangaraj CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-29 08:28 EST by Remy Suen CLA
Modified: 2011-01-25 03:56 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Remy Suen CLA 2010-11-29 08:28:25 EST
If there is bad client code in an IWizard's dispose() method, the dialog get into a state where it cannot be closed.

------------

Run this code and try to close the wizard dialog, you will not be able to.

Display display = new Display();
Wizard wizard = new Wizard() {
  public boolean performFinish() {
    return true;
  }

  public void dispose() {
    throw new RuntimeException();
  }
};
WizardDialog dialog = new WizardDialog(null, wizard);
dialog.open();
display.dispose();

------------

java.lang.RuntimeException
	at Main$5.dispose(Main.java:142)
	at org.eclipse.jface.wizard.WizardDialog.hardClose(WizardDialog.java:859)
	at org.eclipse.jface.wizard.WizardDialog.close(WizardDialog.java:484)
	at org.eclipse.jface.window.Window.handleShellCloseEvent(Window.java:741)
	at org.eclipse.jface.window.Window$3.shellClosed(Window.java:687)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:98)
Comment 1 Remy Suen CLA 2010-12-09 07:40:41 EST
Not being able to close the dialog means the user is effectively forced to kill the Eclipse process which can lead to data loss if there are dirty parts in the "back".
Comment 2 Prakash Rangaraj CLA 2010-12-14 05:59:02 EST
Fix is available in patch for bux 331337 and released to HEAD
Comment 3 Prakash Rangaraj CLA 2011-01-25 03:56:24 EST
Verified in I20110124-1800