diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.java index a5bc72b91bb7..1ce10fd13492 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.java @@ -16,7 +16,6 @@ package com.intellij.openapi.components.impl.stores; import com.intellij.openapi.Disposable; -import com.intellij.openapi.application.Application; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.*; import com.intellij.openapi.components.StateStorage.SaveSession; @@ -47,10 +46,8 @@ import java.util.regex.Pattern; public abstract class StateStorageManagerImpl implements StateStorageManager, Disposable { private static final Logger LOG = Logger.getInstance(StateStorageManagerImpl.class); - private static final boolean ourHeadlessEnvironment; - static { - final Application app = ApplicationManager.getApplication(); - ourHeadlessEnvironment = app.isHeadlessEnvironment() || app.isUnitTestMode(); + private static class Holder { + private static final boolean ourHeadlessEnvironment = ApplicationManager.getApplication().isHeadlessEnvironment(); } private final Map myMacros = new LinkedHashMap(); @@ -201,7 +198,7 @@ public abstract class StateStorageManagerImpl implements StateStorageManager, Di private StateStorage createFileStateStorage(@NotNull String fileSpec, @Nullable RoamingType roamingType) { String filePath = expandMacros(fileSpec); - if (!ourHeadlessEnvironment && PathUtilRt.getFileName(filePath).lastIndexOf('.') < 0) { + if (!Holder.ourHeadlessEnvironment && PathUtilRt.getFileName(filePath).lastIndexOf('.') < 0) { throw new IllegalArgumentException("Extension is missing for storage file: " + filePath); } @@ -264,8 +261,8 @@ public abstract class StateStorageManagerImpl implements StateStorageManager, Di } String expanded = file; - for (String macro : myMacros.keySet()) { - expanded = StringUtil.replace(expanded, macro, myMacros.get(macro)); + for (Map.Entry entry : myMacros.entrySet()) { + expanded = StringUtil.replace(expanded, entry.getKey(), entry.getValue()); } return expanded; } @@ -274,8 +271,8 @@ public abstract class StateStorageManagerImpl implements StateStorageManager, Di @Override public String collapseMacros(@NotNull String path) { String result = path; - for (String macro : myMacros.keySet()) { - result = StringUtil.replace(result, myMacros.get(macro), macro); + for (Map.Entry entry : myMacros.entrySet()) { + result = StringUtil.replace(result, entry.getValue(), entry.getKey()); } return result; } @@ -287,7 +284,7 @@ public abstract class StateStorageManagerImpl implements StateStorageManager, Di } protected class StateStorageManagerExternalizationSession implements ExternalizationSession { - final Map mySessions = new LinkedHashMap(); + private final Map mySessions = new LinkedHashMap(); @Override public void setState(@NotNull Storage[] storageSpecs, @NotNull Object component, @NotNull String componentName, @NotNull Object state) {