Bug 307122 SelectionServiceImpl leaks RATs
SelectionServiceImpl.track adds an IRunAndTrack that is never removed. So for example each time an editor is opened and closed two extra RATs are added to the application context (once for open and once for close).
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/internal/SelectionServiceImpl.java
listener.selectionChanged(part, selection);
		}
		notifyTargetedListeners(part, selection);
	}
	private void notifyTargetedListeners(MPart part, Object selection) {
		String id = part.getId();
		if (id != null) {
			Set<ISelectionListener> listeners = targetedListeners.get(id);
			if (listeners != null) {
				for (ISelectionListener listener : listeners) {
					listener.selectionChanged(part, selection);
				}
			}
		}
	}
	private void track(final MPart part) {
		final IEclipseContext context = part.getContext();
		if (context != null && tracked.add(context)) {
			context.runAndTrack(new IRunAndTrack() {
				private boolean initial = true;
				public boolean notify(ContextChangeEvent event) {
					Object selection = context.get(OUT_SELECTION);
					if (initial) {
						initial = false;
						if (selection == null) {
							return true;
						}
					}
					if (activePart == part) {
						notifyListeners(part, selection);