diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/remote/GradleApiFacadeManager.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/remote/GradleApiFacadeManager.java index a54979f44b8d..51c5ce619e47 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/remote/GradleApiFacadeManager.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/remote/GradleApiFacadeManager.java @@ -57,6 +57,7 @@ import java.util.Collection; import java.util.List; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicReference; /** * Entry point to work with remote {@link GradleApiFacade}. @@ -77,12 +78,13 @@ public class GradleApiFacadeManager { private final ConcurrentMap myFacadeWrappers = new ConcurrentWeakHashMap(); - private final ConcurrentMap myRemoteNotificationManagers - = new ConcurrentWeakHashMap(); private final ConcurrentMap> myRemoteFacades = new ConcurrentWeakHashMap>(); - @NotNull private final GradleLibraryManager myGradleLibraryManager; + @NotNull private final GradleLibraryManager myGradleLibraryManager; + + private final AtomicReference myExportedProgressManager + = new AtomicReference(); @NotNull private final GradleProgressNotificationManagerImpl myProgressManager; // Please note that we don't use RemoteGradleProcessSettings as the 'Configuration' type parameter here because we need @@ -283,14 +285,14 @@ public class GradleApiFacadeManager { GradleLog.LOG.info("Instructing gradle to use java from " + newPair.second.getJavaHome()); } result.applySettings(newPair.second); - RemoteGradleProgressNotificationManager exported = myRemoteNotificationManagers.get(project.getName()); + RemoteGradleProgressNotificationManager exported = myExportedProgressManager.get(); if (exported == null) { try { exported = (RemoteGradleProgressNotificationManager)UnicastRemoteObject.exportObject(myProgressManager, 0); - myRemoteNotificationManagers.putIfAbsent(project.getName(), exported); + myExportedProgressManager.set(exported); } catch (RemoteException e) { - exported = myRemoteNotificationManagers.get(project.getName()); + exported = myExportedProgressManager.get(); } } if (exported == null) { diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleUtil.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleUtil.java index 892958e6fd22..975eba8e541a 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleUtil.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleUtil.java @@ -221,7 +221,7 @@ public class GradleUtil { @Override public void run() { if (modal) { - ProgressManager.getInstance().run(new Task.Modal(project, GradleBundle.message("gradle.import.progress.text"), true) { + ProgressManager.getInstance().run(new Task.Modal(project, GradleBundle.message("gradle.import.progress.text"), false) { @Override public void run(@NotNull ProgressIndicator indicator) { task.execute(indicator);