diff options
author | vlorenzo | 2013-02-18 10:34:00 +0000 |
---|---|---|
committer | vlorenzo | 2013-02-18 10:34:00 +0000 |
commit | fab3a4ed66f81b04fbe432c3a34654d326f6521a (patch) | |
tree | ffc285a0b51554f8d08247d2d14e893eac59f4a6 /plugins | |
parent | a7dd3b29641633472bf6af97a2331b9da31c2577 (diff) | |
download | org.eclipse.papyrus-fab3a4ed66f81b04fbe432c3a34654d326f6521a.tar.gz org.eclipse.papyrus-fab3a4ed66f81b04fbe432c3a34654d326f6521a.tar.xz org.eclipse.papyrus-fab3a4ed66f81b04fbe432c3a34654d326f6521a.zip |
401063: [Table] Memory Leak with Customization Engine
https://bugs.eclipse.org/bugs/show_bug.cgi?id=401063
Diffstat (limited to 'plugins')
3 files changed, 12 insertions, 1 deletions
diff --git a/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/internal/IPapyrusNatTableWidget.java b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/internal/IPapyrusNatTableWidget.java index e0499976409..1edf41bb452 100644 --- a/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/internal/IPapyrusNatTableWidget.java +++ b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/internal/IPapyrusNatTableWidget.java @@ -17,6 +17,7 @@ import java.util.List; import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.facet.widgets.nattable.INatTableWidget;
+import org.eclipse.ui.services.IDisposable;
/**
*
@@ -31,7 +32,7 @@ import org.eclipse.emf.facet.widgets.nattable.INatTableWidget; * @author VL222926
*
*/
-public interface IPapyrusNatTableWidget extends INatTableWidget {
+public interface IPapyrusNatTableWidget extends INatTableWidget , IDisposable{
/**
* This method allow to add elements in the table without execute the command in the command stack
diff --git a/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/internal/NatTableEditor.java b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/internal/NatTableEditor.java index 884e3d289c0..685b58be820 100644 --- a/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/internal/NatTableEditor.java +++ b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/internal/NatTableEditor.java @@ -334,6 +334,11 @@ public class NatTableEditor extends EditorPart implements ISelectionProvider, IE }
editingDomain.getCommandStack().removeCommandStackListener(commandListener);
super.dispose();
+ for(final ISelectionChangedListener listener : this.natTableWidget.getSelectionChangedListeners()) {
+ this.natTableWidget.removeSelectionChangedListener(listener);
+ }
+ ((IPapyrusNatTableWidget)this.natTableWidget).dispose();
+ this.natTableWidget = null;
}
@Override
diff --git a/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/internal/PapyrusNatTableWidget.java b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/internal/PapyrusNatTableWidget.java index bc95b3639c1..eaf569aa2d4 100644 --- a/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/internal/PapyrusNatTableWidget.java +++ b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/internal/PapyrusNatTableWidget.java @@ -254,5 +254,10 @@ public class PapyrusNatTableWidget extends NatTableWidget implements IPapyrusNat }
getEditingDomain().getCommandStack().execute(addRowCommand);
}
+
+ @Override
+ public void dispose() {
+ getCustomizationEngine().clear();
+ }
}
|