Fix a deadlock when ADT starts, starts building projects, and load the SDK at the same time.
diff --git a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/AdtPlugin.java b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/AdtPlugin.java
index a52599f..5d8b6c2 100644
--- a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/AdtPlugin.java
+++ b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/AdtPlugin.java
@@ -1045,12 +1045,12 @@
}
}
+ ArrayList<IJavaProject> list = new ArrayList<IJavaProject>();
synchronized (getSdkLockObject()) {
mSdkIsLoaded = LoadStatus.LOADED;
progress.setTaskName("Check Projects");
- ArrayList<IJavaProject> list = new ArrayList<IJavaProject>();
for (IJavaProject javaProject : mPostLoadProjectsToResolve) {
if (javaProject.getProject().isOpen()) {
list.add(javaProject);
@@ -1059,24 +1059,24 @@
// done with this list.
mPostLoadProjectsToResolve.clear();
-
- // check the projects that need checking.
- // The method modifies the list (it removes the project that
- // do not need to be resolved again).
- AndroidClasspathContainerInitializer.checkProjectsCache(
- mPostLoadProjectsToCheck);
-
- list.addAll(mPostLoadProjectsToCheck);
-
- // update the project that needs recompiling.
- if (list.size() > 0) {
- IJavaProject[] array = list.toArray(
- new IJavaProject[list.size()]);
- AndroidClasspathContainerInitializer.updateProjects(array);
- }
-
- progress.worked(10);
}
+
+ // check the projects that need checking.
+ // The method modifies the list (it removes the project that
+ // do not need to be resolved again).
+ AndroidClasspathContainerInitializer.checkProjectsCache(
+ mPostLoadProjectsToCheck);
+
+ list.addAll(mPostLoadProjectsToCheck);
+
+ // update the project that needs recompiling.
+ if (list.size() > 0) {
+ IJavaProject[] array = list.toArray(
+ new IJavaProject[list.size()]);
+ AndroidClasspathContainerInitializer.updateProjects(array);
+ }
+
+ progress.worked(10);
}
// Notify resource changed listeners