dynamic bundle: don't fail when application hasn't loaded

GitOrigin-RevId: 31f814de3c012482f09bd85a7e2ea4103cf4dd40
This commit is contained in:
Sergey Ignatov
2019-12-18 19:31:34 +00:00
committed by intellij-monorepo-bot
parent c46675b80b
commit 67d3dd990b
@@ -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<LanguageBundleEP> EP_NAME = ExtensionPointName.create("com.intellij.languageBundle");
}
}
}