Skip to content

Commit f355b2a

Browse files
authored
Merge pull request #5279 from microsoft/fix-preload
[#0] Preloader cause failure in AzureService loading(SPI)
2 parents 729f390 + 94cba2a commit f355b2a

File tree

1 file changed

+17
-3
lines changed
  • PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-lib/src/main/java/com/microsoft/azure/toolkit/intellij/common/preload

1 file changed

+17
-3
lines changed

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-lib/src/main/java/com/microsoft/azure/toolkit/intellij/common/preload/AzurePreloadingActivity.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,30 @@
88
import com.intellij.openapi.application.ApplicationManager;
99
import com.intellij.openapi.application.PreloadingActivity;
1010
import com.intellij.openapi.progress.ProgressIndicator;
11+
import com.microsoft.azure.toolkit.lib.AzureService;
1112
import com.microsoft.azure.toolkit.lib.common.cache.Preloader;
1213
import lombok.extern.java.Log;
1314

15+
import java.util.logging.Level;
16+
17+
import static com.microsoft.azure.toolkit.lib.Azure.az;
18+
1419
@Log
1520
public class AzurePreloadingActivity extends PreloadingActivity {
1621

1722
@Override
1823
public void preload(@org.jetbrains.annotations.NotNull final ProgressIndicator indicator) {
19-
// Using progress manager as azure task manager is not initialized
20-
// TODO: remove this comment
21-
// ApplicationManager.getApplication().executeOnPooledThread(Preloader::load);
24+
final ClassLoader current = Thread.currentThread().getContextClassLoader();
25+
try {
26+
final ClassLoader classLoader = AzurePreloadingActivity.class.getClassLoader();
27+
Thread.currentThread().setContextClassLoader(classLoader);
28+
az(AzureService.class);
29+
} catch (final Exception e) {
30+
log.log(Level.WARNING, "failed to load AzureServices.", e);
31+
} finally {
32+
Thread.currentThread().setContextClassLoader(current);
33+
}
34+
// Using application manager as azure task manager is not initialized
35+
ApplicationManager.getApplication().executeOnPooledThread(Preloader::load);
2236
}
2337
}

0 commit comments

Comments
 (0)