diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeFormatterFacade.java b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeFormatterFacade.java index 89f1ed6bf203..f732b6063c83 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeFormatterFacade.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeFormatterFacade.java @@ -21,8 +21,6 @@ import com.intellij.psi.impl.source.SourceTreeToPsiMap; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.util.IncorrectOperationException; -import java.io.IOException; - public class CodeFormatterFacade { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.source.codeStyle.CodeFormatterFacade"); @@ -123,15 +121,10 @@ public class CodeFormatterFacade { } private void printToConsole(final Block rootBlock, final FormattingModel model) { - try { - String tree = JDOMUtil.writeElement(new FormatInfoPrinter(rootBlock, model.getDocumentModel()).blocksAsTree(), "\n"); - System.out.println("---TREE---"); - System.out.println(tree); - System.out.println("---/TREE---"); - } - catch (IOException e) { - e.printStackTrace(); - } + String tree = JDOMUtil.writeElement(new FormatInfoPrinter(rootBlock, model.getDocumentModel()).blocksAsTree(), "\n"); + System.out.println("---TREE---"); + System.out.println(tree); + System.out.println("---/TREE---"); } public void processTextWithoutHeadWhitespace(final PsiFile file, final int startOffset, final int endOffset) { diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/DefaultStateSerializer.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/DefaultStateSerializer.java index 3d24dd1a4a98..dea151a18f04 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/DefaultStateSerializer.java +++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/DefaultStateSerializer.java @@ -15,7 +15,6 @@ import org.jdom.Element; import org.jetbrains.annotations.Nullable; import java.lang.annotation.Annotation; -import java.io.IOException; @SuppressWarnings({"deprecation"}) @@ -80,13 +79,8 @@ class DefaultStateSerializer { } else if (JDOMExternalizable.class.isAssignableFrom(stateClass)) { if (mergeInto != null) { - try { - String elementText = JDOMUtil.writeElement(stateElement, "\n"); - LOG.error("State is " + stateClass.getName() + ", merge into is " + mergeInto.toString() + ", state element text is " + elementText); - } - catch (IOException e) { - LOG.error(e); - } + String elementText = JDOMUtil.writeElement(stateElement, "\n"); + LOG.error("State is " + stateClass.getName() + ", merge into is " + mergeInto.toString() + ", state element text is " + elementText); } try { final T t = stateClass.newInstance(); diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StorageUtil.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StorageUtil.java index 33b6d5e75fd3..47df3cd45724 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StorageUtil.java +++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StorageUtil.java @@ -151,12 +151,7 @@ public class StorageUtil { } static String printElement(Element element) throws StateStorage.StateStorageException { - try { - return JDOMUtil.writeElement(element, SystemProperties.getLineSeparator()); - } - catch (IOException e) { - throw new StateStorage.StateStorageException(e); - } + return JDOMUtil.writeElement(element, SystemProperties.getLineSeparator()); } static void save(IFile file, Element element) throws StateStorage.StateStorageException { diff --git a/platform/util/src/com/intellij/openapi/util/JDOMUtil.java b/platform/util/src/com/intellij/openapi/util/JDOMUtil.java index 3a2d0131095b..1ce7c7175e6b 100644 --- a/platform/util/src/com/intellij/openapi/util/JDOMUtil.java +++ b/platform/util/src/com/intellij/openapi/util/JDOMUtil.java @@ -403,10 +403,15 @@ public class JDOMUtil { } @NotNull - public static String writeElement(Element element, String lineSeparator) throws IOException { - final StringWriter writer = new StringWriter(); - writeElement(element, writer, lineSeparator); - return writer.toString(); + public static String writeElement(Element element, String lineSeparator) { + try { + final StringWriter writer = new StringWriter(); + writeElement(element, writer, lineSeparator); + return writer.toString(); + } + catch (IOException ignored) { + throw new RuntimeException(ignored); + } } public static void writeDocument(Document document, Writer writer, String lineSeparator) throws IOException { diff --git a/platform/util/src/com/intellij/util/xmlb/SkipDefaultValuesSerializationFilters.java b/platform/util/src/com/intellij/util/xmlb/SkipDefaultValuesSerializationFilters.java index 30d607e925f1..adfcd14e56b2 100644 --- a/platform/util/src/com/intellij/util/xmlb/SkipDefaultValuesSerializationFilters.java +++ b/platform/util/src/com/intellij/util/xmlb/SkipDefaultValuesSerializationFilters.java @@ -17,6 +17,8 @@ package com.intellij.util.xmlb; import com.intellij.openapi.util.Comparing; +import com.intellij.openapi.util.JDOMUtil; +import org.jdom.Element; import java.util.HashMap; import java.util.Map; @@ -27,7 +29,13 @@ public class SkipDefaultValuesSerializationFilters implements SerializationFilte public boolean accepts(final Accessor accessor, final Object bean) { Object defaultBean = getDefaultBean(bean); - return !Comparing.equal(accessor.read(bean), accessor.read(defaultBean)); + final Object defValue = accessor.read(defaultBean); + final Object beanValue = accessor.read(bean); + if (defValue instanceof Element && beanValue instanceof Element) { + return !JDOMUtil.writeElement((Element)defValue, "\n").equals(JDOMUtil.writeElement((Element)beanValue, "\n")); + } + + return !Comparing.equal(beanValue, defValue); } private Object getDefaultBean(final Object bean) {