diff options
Diffstat (limited to 'platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationImpl.java')
-rw-r--r-- | platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationImpl.java | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationImpl.java b/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationImpl.java index 46fae517170d..e3a36a2e59ab 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationImpl.java @@ -336,25 +336,26 @@ public class ApplicationImpl extends PlatformComponentManagerImpl implements App } private boolean disposeSelf(final boolean checkCanCloseProject) { - final CommandProcessor commandProcessor = CommandProcessor.getInstance(); - final boolean[] canClose = {true}; - for (final Project project : ProjectManagerEx.getInstanceEx().getOpenProjects()) { - try { - commandProcessor.executeCommand(project, new Runnable() { - @Override - public void run() { - final ProjectManagerImpl manager = (ProjectManagerImpl)ProjectManagerEx.getInstanceEx(); - if (!manager.closeProject(project, true, true, checkCanCloseProject)) { - canClose[0] = false; + final ProjectManagerImpl manager = (ProjectManagerImpl)ProjectManagerEx.getInstanceEx(); + if (manager != null) { + final boolean[] canClose = {true}; + for (final Project project : manager.getOpenProjects()) { + try { + CommandProcessor.getInstance().executeCommand(project, new Runnable() { + @Override + public void run() { + if (!manager.closeProject(project, true, true, checkCanCloseProject)) { + canClose[0] = false; + } } - } - }, ApplicationBundle.message("command.exit"), null); - } - catch (Throwable e) { - LOG.error(e); - } - if (!canClose[0]) { - return false; + }, ApplicationBundle.message("command.exit"), null); + } + catch (Throwable e) { + LOG.error(e); + } + if (!canClose[0]) { + return false; + } } } runWriteAction(new Runnable() { @@ -529,9 +530,13 @@ public class ApplicationImpl extends PlatformComponentManagerImpl implements App } @Override - public void load(String path) throws IOException, InvalidDataException { - getStateStore().setOptionsPath(path); - getStateStore().setConfigPath(PathManager.getConfigPath()); + public void load(@Nullable String optionsPath) throws IOException { + load(PathManager.getConfigPath(), optionsPath); + } + + public void load(@NotNull String configPath, @Nullable String optionsPath) throws IOException { + getStateStore().setOptionsPath(optionsPath); + getStateStore().setConfigPath(configPath); myIsFiringLoadingEvent = true; try { |