Bug 127505 - [Dialogs] NPE from saveDialogBounds
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PopupDialog.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PopupDialog.java
index 082c6ba..2d1a5b9 100644
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PopupDialog.java
+++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PopupDialog.java
@@ -889,6 +889,11 @@
* <code>false</code> if it is still open
*/
public boolean close() {
+ // If already closed, there is nothing to do.
+ // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=127505
+ if (getShell() == null || getShell().isDisposed())
+ return true;
+
saveDialogBounds(getShell());
// Widgets are about to be disposed, so null out any state
// related to them that was not handled in dispose listeners.