platform/org.eclipse.core.resources/src/org/eclipse/core/internal/refresh/RefreshJob.java
changeset 16 06d88bb6aac0
parent 12 063eb66097dc
--- a/platform/org.eclipse.core.resources/src/org/eclipse/core/internal/refresh/RefreshJob.java	Mon Jun 01 19:29:06 2009 -0500
+++ b/platform/org.eclipse.core.resources/src/org/eclipse/core/internal/refresh/RefreshJob.java	Tue Jun 02 09:59:27 2009 -0500
@@ -11,6 +11,7 @@
 package org.eclipse.core.internal.refresh;
 
 import java.util.*;
+
 import org.eclipse.core.internal.localstore.PrefixPool;
 import org.eclipse.core.internal.utils.Messages;
 import org.eclipse.core.internal.utils.Policy;
@@ -27,6 +28,13 @@
  */
 public class RefreshJob extends WorkspaceJob {
 	private static final long UPDATE_DELAY = 200;
+	
+	/**
+	 * Flag indicating refreshing in progress if > 0
+	 */
+	private static int refreshingLevel = 0;
+	
+	
 	/**
 	 * List of refresh requests. Requests are processed in order from
 	 * the end of the list. Requests can be added to either the beginning
@@ -151,6 +159,13 @@
 		MultiStatus errors = new MultiStatus(ResourcesPlugin.PI_RESOURCES, 1, msg, null);
 		long longestRefresh = 0;
 		try {
+			refreshingLevel++;
+			ResourcesPlugin.writeRefreshLog(RefreshManager.DEBUG_PREFIX + " refreshing started..."); //$NON-NLS-1$
+			for (Iterator iterator = fRequests.iterator(); iterator.hasNext();) {
+				IResource resource = (IResource) iterator.next();
+				ResourcesPlugin.writeRefreshLog(RefreshManager.DEBUG_PREFIX + " requested resource to refresh: " + resource.getFullPath()); //$NON-NLS-1$
+			}
+			
 			if (RefreshManager.DEBUG)
 				Policy.debug(RefreshManager.DEBUG_PREFIX + " starting refresh job"); //$NON-NLS-1$
 			int refreshCount = 0;
@@ -193,6 +208,9 @@
 			monitor.done();
 			if (RefreshManager.DEBUG)
 				System.out.println(RefreshManager.DEBUG_PREFIX + " finished refresh job in: " + (System.currentTimeMillis() - start) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$
+			
+			ResourcesPlugin.writeRefreshLog(RefreshManager.DEBUG_PREFIX + " finished refresh job in: " + (System.currentTimeMillis() - start) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$
+			refreshingLevel--;
 		}
 		if (!errors.isOK())
 			return errors;
@@ -222,4 +240,8 @@
 			System.out.println(RefreshManager.DEBUG_PREFIX + " disabling auto-refresh"); //$NON-NLS-1$
 		cancel();
 	}
+	
+	public static boolean isRefreshing() {
+		return refreshingLevel > 0;
+	}
 }