Merge change 3642 into donut

* changes:
  Use the same lock for Sdk class than the one used for loading the SDK.
diff --git a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java
index 1f3cdb3..0fe592a 100644
--- a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java
+++ b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java
@@ -192,7 +192,7 @@
      */
     public void setProject(IProject project, IAndroidTarget target,
             Map<String, String> apkConfigMap) {
-        synchronized (mProjectTargetMap) {
+        synchronized (AdtPlugin.getDefault().getSdkLockObject()) {
             boolean resolveProject = false;
             boolean compileProject = false;
             boolean cleanProject = false;
@@ -270,7 +270,7 @@
      * Returns the {@link IAndroidTarget} object associated with the given {@link IProject}.
      */
     public IAndroidTarget getTarget(IProject project) {
-        synchronized (mProjectTargetMap) {
+        synchronized (AdtPlugin.getDefault().getSdkLockObject()) {
             IAndroidTarget target = mProjectTargetMap.get(project);
             if (target == null) {
                 // get the value from the project persistent property.
@@ -313,10 +313,12 @@
         }
 
         if (sdkStorage != null) {
-            Map<String, String> configMap = ApkConfigurationHelper.getConfigs(properties);
+            synchronized (AdtPlugin.getDefault().getSdkLockObject()) {
+                Map<String, String> configMap = ApkConfigurationHelper.getConfigs(properties);
 
-            if (configMap != null) {
-                sdkStorage.mProjectApkConfigMap.put(project, configMap);
+                if (configMap != null) {
+                    sdkStorage.mProjectApkConfigMap.put(project, configMap);
+                }
             }
         }
 
@@ -368,7 +370,7 @@
      * Return the {@link AndroidTargetData} for a given {@link IAndroidTarget}.
      */
     public AndroidTargetData getTargetData(IAndroidTarget target) {
-        synchronized (mTargetDataMap) {
+        synchronized (AdtPlugin.getDefault().getSdkLockObject()) {
             return mTargetDataMap.get(target);
         }
     }
@@ -379,7 +381,9 @@
      * config values. The config value can be passed directly to aapt through the -c option.
      */
     public Map<String, String> getProjectApkConfigs(IProject project) {
-        return mProjectApkConfigMap.get(project);
+        synchronized (AdtPlugin.getDefault().getSdkLockObject()) {
+            return mProjectApkConfigMap.get(project);
+        }
     }
 
     /**
@@ -411,7 +415,7 @@
     }
 
     void setTargetData(IAndroidTarget target, AndroidTargetData data) {
-        synchronized (mTargetDataMap) {
+        synchronized (AdtPlugin.getDefault().getSdkLockObject()) {
             mTargetDataMap.put(target, data);
         }
     }
@@ -455,7 +459,7 @@
 
     public void projectClosed(IProject project) {
         // get the target project
-        synchronized (mProjectTargetMap) {
+        synchronized (AdtPlugin.getDefault().getSdkLockObject()) {
             IAndroidTarget target = mProjectTargetMap.get(project);
             if (target != null) {
                 // get the bridge for the target, and clear the cache for this project.