[470704] Does the outline page Leak? OutOfMemoryError in
SetupFactoryImpl.createVariableTask (393)

https://bugs.eclipse.org/bugs/show_bug.cgi?id=470704
diff --git a/plugins/org.eclipse.oomph.setup.editor/src/org/eclipse/oomph/setup/presentation/SetupEditor.java b/plugins/org.eclipse.oomph.setup.editor/src/org/eclipse/oomph/setup/presentation/SetupEditor.java
index 66d4e2a..754fd97 100644
--- a/plugins/org.eclipse.oomph.setup.editor/src/org/eclipse/oomph/setup/presentation/SetupEditor.java
+++ b/plugins/org.eclipse.oomph.setup.editor/src/org/eclipse/oomph/setup/presentation/SetupEditor.java
@@ -55,6 +55,7 @@
 import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.ui.MarkerHelper;
 import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
 import org.eclipse.emf.common.ui.viewer.ColumnViewerInformationControlToolTipSupport;
@@ -1975,6 +1976,8 @@
 
     private Map<Object, Set<Object>> inverseCopyMap = new HashMap<Object, Set<Object>>();
 
+    private List<Notifier> notifiers = new ArrayList<Notifier>();
+
     private Map<Object, Object> parents = new HashMap<Object, Object>();
 
     private AdapterFactoryEditingDomain.EditingDomainProvider editingDomainProvider = new AdapterFactoryEditingDomain.EditingDomainProvider(editingDomain);
@@ -2186,6 +2189,14 @@
       if (labelProvider != null)
       {
         copyMap.clear();
+        inverseCopyMap.clear();
+
+        for (Notifier notifier : notifiers)
+        {
+          notifier.eAdapters().clear();
+        }
+
+        notifiers.clear();
 
         try
         {
@@ -2369,10 +2380,13 @@
           {
             for (EObject eObject : setupTaskPerformer.getCopyMap().values())
             {
+              notifiers.add(eObject);
+
               Resource resource = ((InternalEObject)eObject).eDirectResource();
               if (resource != null && !resource.eAdapters().contains(editingDomainProvider))
               {
                 resource.eAdapters().add(editingDomainProvider);
+                notifiers.add(resource);
               }
             }