com.intellij.openapi.vcs.changes.ChangeListManager.ensureUpToDate should wait until...
authorpeter <peter@jetbrains.com>
Thu, 12 Jan 2012 18:59:38 +0000 (19:59 +0100)
committerpeter <peter@jetbrains.com>
Thu, 12 Jan 2012 18:59:38 +0000 (19:59 +0100)
platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeListManagerImpl.java
platform/vcs-impl/src/com/intellij/openapi/vcs/changes/UpdateRequestsQueue.java

index a9f775283f5c01e6ead5fcdf31f52485c4b0c2c1..55f8ba1d6a4acb90a8fab5f1c3cc0bfb955f1b7b 100644 (file)
@@ -1304,6 +1304,7 @@ public class ChangeListManagerImpl extends ChangeListManagerEx implements Projec
   public boolean ensureUpToDate(final boolean canBeCanceled) {
     final EnsureUpToDateFromNonAWTThread worker = new EnsureUpToDateFromNonAWTThread(myProject);
     worker.execute();
+    myUpdater.waitUntilRefreshed();
     return worker.isDone();
   }
 
index 0adfe9eeb8596829006ffd13eff102911ebd5dcd..61f3774c8550324dffb4a1728c125daf44911b32 100644 (file)
@@ -27,7 +27,6 @@ import com.intellij.openapi.vcs.ProjectLevelVcsManager;
 import com.intellij.util.Consumer;
 import com.intellij.util.concurrency.Semaphore;
 import com.intellij.util.io.storage.HeavyProcessLatch;
-import org.jetbrains.annotations.TestOnly;
 
 import javax.swing.*;
 import java.util.ArrayList;
@@ -95,15 +94,14 @@ public class UpdateRequestsQueue {
   }
 
   public void schedule() {
-    if (ChangeListManagerImpl.DEBUG) {
-      System.out.println("UpdateRequestsQueue.schedule");
-    }
-
     synchronized (myLock) {
       if (! myStarted && ApplicationManager.getApplication().isUnitTestMode()) return;
 
       if (! myStopped) {
         if (! myRequestSubmitted) {
+          if (ChangeListManagerImpl.DEBUG) {
+            System.out.println("UpdateRequestsQueue.schedule");
+          }
           final MyRunnable runnable = new MyRunnable();
           myRequestSubmitted = true;
           myExecutor.schedule(runnable, 300, TimeUnit.MILLISECONDS);
@@ -142,7 +140,6 @@ public class UpdateRequestsQueue {
     LOG.debug("Stop finished for project: " + myProject.getName());
   }
 
-  @TestOnly
   public void waitUntilRefreshed() {
     if (ChangeListManagerImpl.DEBUG) {
       System.out.println("UpdateRequestsQueue.waitUntilRefreshed");
@@ -261,7 +258,14 @@ public class UpdateRequestsQueue {
         }
 
         LOG.debug("MyRunnable: INVOKE, project: " + myProject.getName() + ", runnable: " + hashCode());
+        if (ChangeListManagerImpl.DEBUG) {
+          System.out.println("UpdateRequestsQueue$MyRunnable.run");
+        }
+
         myDelegate.run();
+        if (ChangeListManagerImpl.DEBUG) {
+          System.out.println(" - end - UpdateRequestsQueue$MyRunnable.run");
+        }
         LOG.debug("MyRunnable: invokeD, project: " + myProject.getName() + ", runnable: " + hashCode());
       } finally {
         synchronized (myLock) {