AI 146600: am: CL 146597 am: CL 146595 ADT #1794560: prevent from loading more than one SDK at once.
Original author: raphael
Merged from: //branches/cupcake/...
Original author: android-build
Automated import of CL 146600
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 4a7a002..b5cee81 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
@@ -177,6 +177,8 @@
private ArrayList<ITargetChangeListener> mTargetChangeListeners =
new ArrayList<ITargetChangeListener>();
+ protected boolean mSdkIsLoading;
+
/**
* Custom PrintStream for Dx output. This class overrides the method
* <code>println()</code> and adds the standard output tag with the
@@ -1010,7 +1012,15 @@
@SuppressWarnings("unchecked")
@Override
protected IStatus run(IProgressMonitor monitor) {
- try {
+ try {
+
+ if (mSdkIsLoading) {
+ return new Status(IStatus.WARNING, PLUGIN_ID,
+ "An Android SDK is already being loaded. Please try again later.");
+ }
+
+ mSdkIsLoading = true;
+
SubMonitor progress = SubMonitor.convert(monitor,
"Initialize SDK Manager", 100);
@@ -1093,6 +1103,7 @@
}
});
} finally {
+ mSdkIsLoading = false;
if (monitor != null) {
monitor.done();
}