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 e12a2c24eaac..b6dc845c8547 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/remote/GradleApiFacadeManager.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/remote/GradleApiFacadeManager.java @@ -65,6 +65,8 @@ public class GradleApiFacadeManager { private final AtomicReference> myFacade = new AtomicReference>(); + private final AtomicReference myExportedProgressManager + = new AtomicReference(); private final GradleLibraryManager myGradleLibraryManager; private final RemoteGradleProgressNotificationManager myProgressManager; @@ -110,7 +112,7 @@ public class GradleApiFacadeManager { Collection gradleLibraries = myGradleLibraryManager.getAllLibraries(null); GradleLog.LOG.assertTrue(gradleLibraries != null, GradleBundle.message("gradle.generic.text.error.sdk.undefined")); if (gradleLibraries == null) { - return null; + throw new ExecutionException("Can't find gradle libraries"); } final SimpleJavaParameters params = new SimpleJavaParameters(); @@ -230,7 +232,16 @@ public class GradleApiFacadeManager { return myFacade.get().first; } result.applySettings(getRemoteSettings()); - RemoteGradleProgressNotificationManager exported = (RemoteGradleProgressNotificationManager)UnicastRemoteObject.exportObject(myProgressManager, 0); + RemoteGradleProgressNotificationManager exported = myExportedProgressManager.get(); + if (exported == null) { + try { + exported = (RemoteGradleProgressNotificationManager)UnicastRemoteObject.exportObject(myProgressManager, 0); + myExportedProgressManager.set(exported); + } + catch (RemoteException e) { + exported = myExportedProgressManager.get(); + } + } if (exported == null) { GradleLog.LOG.warn("Can't export progress manager"); }