summaryrefslogtreecommitdiff
path: root/platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationImpl.java
diff options
context:
space:
mode:
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.java47
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 {