diff options
author | Steven Spungin | 2014-04-08 02:05:55 +0000 |
---|---|---|
committer | Paul Webster | 2014-04-16 19:34:35 +0000 |
commit | decc8b08a421bf765f735b4633d82e2cc1f974b0 (patch) | |
tree | dd5fea9e4d6f63eea90bf82fa69c9a8121a194e6 | |
parent | cd67790526d98cc71073208042b6817810c9e0cf (diff) | |
download | eclipse.platform.ui-decc8b08a421bf765f735b4633d82e2cc1f974b0.tar.gz eclipse.platform.ui-decc8b08a421bf765f735b4633d82e2cc1f974b0.tar.xz eclipse.platform.ui-decc8b08a421bf765f735b4633d82e2cc1f974b0.zip |
Bug 401439 - [CSS] reoccuring widget is disposed errors
Change-Id: Ib50a96b3eb5cee2eff22b16c4f76e9c09288288d
Signed-off-by: Steven Spungin <steven@spungin.tv>
-rw-r--r-- | bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ContentViewer.java | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ContentViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ContentViewer.java index 4a30fd96f9a..0ed26e5ddc2 100644 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ContentViewer.java +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ContentViewer.java @@ -7,6 +7,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Steven Spungin <steven@spungin.tv> - Bug 401439 *******************************************************************************/ package org.eclipse.jface.viewers; @@ -169,17 +170,24 @@ public abstract class ContentViewer extends Viewer { * @param event a dispose event */ protected void handleDispose(DisposeEvent event) { - if (contentProvider != null) { - contentProvider.inputChanged(this, getInput(), null); - contentProvider.dispose(); - contentProvider = null; - } - if (labelProvider != null) { - labelProvider.removeListener(labelProviderListener); - labelProvider.dispose(); - labelProvider = null; - } - input = null; + if (contentProvider != null) { + try { + contentProvider.inputChanged(this, getInput(), null); + } catch (Exception e) { + // ignore exception + String message = "Exception while calling ContentProvider.inputChanged from ContentViewer.handleDispose"; //$NON-NLS-1$ + message += " (" + contentProvider.getClass().getName() + ")"; //$NON-NLS-1$//$NON-NLS-2$ + Policy.getLog().log(new Status(IStatus.WARNING, Policy.JFACE, message, e)); + } + contentProvider.dispose(); + contentProvider = null; + } + if (labelProvider != null) { + labelProvider.removeListener(labelProviderListener); + labelProvider.dispose(); + labelProvider = null; + } + input = null; } /** |