From 6284352db0ecc667dbb867f57ac51a2a55472cd2 Mon Sep 17 00:00:00 2001 From: Oleg Besedin Date: Tue, 23 Oct 2012 15:47:14 -0400 Subject: Bug 392661 - No selection changed events anymore --- .../src/org/eclipse/e4/core/internal/contexts/EclipseContext.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bundles/org.eclipse.e4.core.contexts/src/org/eclipse/e4/core/internal/contexts/EclipseContext.java b/bundles/org.eclipse.e4.core.contexts/src/org/eclipse/e4/core/internal/contexts/EclipseContext.java index 62cf242a8..6e37537c8 100644 --- a/bundles/org.eclipse.e4.core.contexts/src/org/eclipse/e4/core/internal/contexts/EclipseContext.java +++ b/bundles/org.eclipse.e4.core.contexts/src/org/eclipse/e4/core/internal/contexts/EclipseContext.java @@ -93,6 +93,7 @@ public class EclipseContext implements IEclipseContext { private ReferenceQueue referenceQueue = new ReferenceQueue(); private Map, TrackableComputationExt> activeComputations = Collections.synchronizedMap(new HashMap, TrackableComputationExt>()); + private Set activeRATs = Collections.synchronizedSet(new HashSet()); private final static Object[] nullArgs = new Object[] {null}; @@ -160,6 +161,7 @@ public class EclipseContext implements IEclipseContext { } activeComputations.clear(); + activeRATs.clear(); ContextChangeEvent event = new ContextChangeEvent(this, ContextChangeEvent.DISPOSE, null, null, null); Set scheduled = new LinkedHashSet(); @@ -305,12 +307,15 @@ public class EclipseContext implements IEclipseContext { Reference ref = computation.getReference(); if (ref != null) activeComputations.put(ref, computation); + else + activeRATs.add(computation); } } public void removeRAT(Computation computation) { // remove from listeners weakListeners.remove(computation); + activeRATs.remove(computation); } protected void processScheduled(Set scheduledList) { -- cgit v1.2.3