JpsJavaCompilerOptions () { final JpsJavaCompilerOptions state = new JpsJavaCompilerOptions(); XmlSerializerUtil.copyBean(mySettings, state); state.ADDITIONAL_OPTIONS_OVERRIDE = new HashMap<>(state.ADDITIONAL_OPTIONS_OVERRIDE); // copyBean copies by reference, we need a map clone here final PathMacroManager macros = PathMacroManager.getInstance(myProject); state.ADDITIONAL_OPTIONS_STRING = macros.collapsePathsRecursively(state.ADDITIONAL_OPTIONS_STRING); for (Map.Entry<String, String> entry : state.ADDITIONAL_OPTIONS_OVERRIDE.entrySet()) { entry.setValue(macros.collapsePathsRecursively(entry.getValue())); } return state; }