boolean () { try { RunnerAndConfigurationSettings original = getSettings(); final RunManagerImpl runManager = ((RunnerAndConfigurationSettingsImpl)original).getManager(); if (!original.isTemplate() && !runManager.hasSettings(original)) { return true; } if (isSpecificallyModified()) { return true; } SettingsEditor<RunnerAndConfigurationSettings> editor = getEditor(); if (editor instanceof ConfigurationSettingsEditorWrapper && !((ConfigurationSettingsEditorWrapper)editor).supportsSnapshots()) { return super.isModified(); } if (!getEditor().isReadyForApply()) { return true; } RunnerAndConfigurationSettings snapshot = getSnapshot(); Element originalXml = ((SerializableScheme)original).writeScheme(); Element snapshotXml = ((SerializableScheme)snapshot).writeScheme(); return !JDOMUtil.areElementsEqual(originalXml, snapshotXml); } catch (ConfigurationException e) { //ignore } return super.isModified(); }