From 67d3dd990b11a51d779946c8659fd09d1a92cb2e Mon Sep 17 00:00:00 2001 From: Sergey Ignatov Date: Wed, 18 Dec 2019 13:06:52 +0300 Subject: [PATCH] dynamic bundle: don't fail when application hasn't loaded GitOrigin-RevId: 31f814de3c012482f09bd85a7e2ea4103cf4dd40 --- .../src/com/intellij/DynamicBundle.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/platform/core-api/src/com/intellij/DynamicBundle.java b/platform/core-api/src/com/intellij/DynamicBundle.java index 54eec8d12660..7924ebdb3cbc 100644 --- a/platform/core-api/src/com/intellij/DynamicBundle.java +++ b/platform/core-api/src/com/intellij/DynamicBundle.java @@ -32,7 +32,7 @@ public abstract class DynamicBundle extends AbstractBundle { ResourceBundle pluginBundle = super.findBundle(pathToBundle, langBundle.getLoaderForClass(), control); if (pluginBundle == null) return base; - + try { if (SET_PARENT != null) { SET_PARENT.invoke(pluginBundle, base); @@ -40,6 +40,7 @@ public abstract class DynamicBundle extends AbstractBundle { } catch (Exception e) { LOG.warn(e); + return base; } return pluginBundle; } @@ -47,11 +48,18 @@ public abstract class DynamicBundle extends AbstractBundle { // todo: one language per application @Nullable private static LanguageBundleEP findLanguageBundle() { - Application application = ApplicationManager.getApplication(); - if (application.isUnitTestMode() && !application.getExtensionArea().hasExtensionPoint(LanguageBundleEP.EP_NAME)) { + try { + Application application = ApplicationManager.getApplication(); + if (application == null) return null; + if (application.isUnitTestMode() && !application.getExtensionArea().hasExtensionPoint(LanguageBundleEP.EP_NAME)) { + return null; + } + return LanguageBundleEP.EP_NAME.findExtension(LanguageBundleEP.class); + } + catch (Exception e) { + LOG.error(e); return null; } - return LanguageBundleEP.EP_NAME.findExtension(LanguageBundleEP.class); } public static final DynamicBundle INSTANCE = new DynamicBundle("") { @@ -60,6 +68,4 @@ public abstract class DynamicBundle extends AbstractBundle { public static class LanguageBundleEP extends AbstractExtensionPointBean { public static final ExtensionPointName EP_NAME = ExtensionPointName.create("com.intellij.languageBundle"); } -} - - +} \ No newline at end of file