diff --git a/platform/platform-api/src/com/intellij/ide/GeneralSettings.java b/platform/platform-api/src/com/intellij/ide/GeneralSettings.java index 3fb9b07e514e..65fffab3d2d3 100644 --- a/platform/platform-api/src/com/intellij/ide/GeneralSettings.java +++ b/platform/platform-api/src/com/intellij/ide/GeneralSettings.java @@ -222,6 +222,8 @@ public class GeneralSettings implements NamedJDOMExternalizable, ExportableAppli //todo use DefaultExternalizer public void readExternal(Element parentNode) { + boolean safeWriteSettingRead = false; + List children = parentNode.getChildren(ELEMENT_OPTION); for (final Object aChildren : children) { Element element = (Element)aChildren; @@ -295,6 +297,7 @@ public class GeneralSettings implements NamedJDOMExternalizable, ExportableAppli } if (OPTION_USE_SAFE_WRITE.equals(name) && value != null) { myUseSafeWrite = Boolean.valueOf(value).booleanValue(); + safeWriteSettingRead = true; } if (OPTION_CHARSET.equals(name)) { @@ -361,6 +364,10 @@ public class GeneralSettings implements NamedJDOMExternalizable, ExportableAppli } } } + + if (!safeWriteSettingRead && "true".equals(System.getProperty("idea.no.safe.write"))) { + myUseSafeWrite = false; + } } public void writeExternal(Element parentNode) {