Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 280363 | Differences between
and this patch

Collapse All | Expand All

(-)Eclipse UI/org/eclipse/ui/internal/decorators/DecoratorManager.java (+9 lines)
Lines 44-49 Link Here
44
import org.eclipse.jface.viewers.ILightweightLabelDecorator;
44
import org.eclipse.jface.viewers.ILightweightLabelDecorator;
45
import org.eclipse.jface.viewers.LabelDecorator;
45
import org.eclipse.jface.viewers.LabelDecorator;
46
import org.eclipse.jface.viewers.LabelProviderChangedEvent;
46
import org.eclipse.jface.viewers.LabelProviderChangedEvent;
47
import org.eclipse.rwt.RWT;
48
import org.eclipse.rwt.service.SessionStoreEvent;
49
import org.eclipse.rwt.service.SessionStoreListener;
47
import org.eclipse.swt.graphics.Color;
50
import org.eclipse.swt.graphics.Color;
48
import org.eclipse.swt.graphics.Font;
51
import org.eclipse.swt.graphics.Font;
49
import org.eclipse.swt.graphics.Image;
52
import org.eclipse.swt.graphics.Image;
Lines 286-291 Link Here
286
				.createExtensionPointFilter(getExtensionPointFilter()));
289
				.createExtensionPointFilter(getExtensionPointFilter()));
287
290
288
		resourceManager = null;
291
		resourceManager = null;
292
		// RAP [rh] shut down decoration manager when session is invalidated (see bug 280363)
293
		RWT.getSessionStore().addSessionStoreListener( new SessionStoreListener() {
294
      public void beforeDestroy( final SessionStoreEvent event ) {
295
        shutdown();
296
      }
297
    } );
289
	}
298
	}
290
299
291
	/**
300
	/**
(-)Eclipse UI/org/eclipse/ui/internal/decorators/DecorationScheduler.java (-2 / +4 lines)
Lines 333-339 Link Here
333
        }
333
        }
334
334
335
        while (updatesPending()) {
335
        while (updatesPending()) {
336
336
System.out.println("Update Pending:");
337
          try {
337
          try {
338
            Thread.sleep(100);
338
            Thread.sleep(100);
339
          } catch (InterruptedException e) {
339
          } catch (InterruptedException e) {
Lines 478-483 Link Here
478
	 * @return <code>true</code> if there are updates waiting to be served
478
	 * @return <code>true</code> if there are updates waiting to be served
479
	 */
479
	 */
480
	protected boolean updatesPending() {
480
	protected boolean updatesPending() {
481
	  // RAP [rh] stop updating when session is invalidated (see bug 280363) 
482
	  if( shutdown )
483
	    return false;
481
		if (updateJob != null && updateJob.getState() != Job.NONE) {
484
		if (updateJob != null && updateJob.getState() != Job.NONE) {
482
			return true;
485
			return true;
483
		}
486
		}
Lines 550-556 Link Here
550
			ILabelProviderListener[] listeners;
553
			ILabelProviderListener[] listeners;
551
554
552
			public IStatus runInUIThread(IProgressMonitor monitor) {
555
			public IStatus runInUIThread(IProgressMonitor monitor) {
553
554
				synchronized (DecorationScheduler.this) {
556
				synchronized (DecorationScheduler.this) {
555
					if (shutdown) {
557
					if (shutdown) {
556
						return Status.CANCEL_STATUS;
558
						return Status.CANCEL_STATUS;

Return to bug 280363