diff --git a/xml/dom-openapi/src/com/intellij/util/xml/WrappingConverter.java b/xml/dom-openapi/src/com/intellij/util/xml/WrappingConverter.java index d6b71ebc2917..eb037818e8d9 100644 --- a/xml/dom-openapi/src/com/intellij/util/xml/WrappingConverter.java +++ b/xml/dom-openapi/src/com/intellij/util/xml/WrappingConverter.java @@ -63,9 +63,15 @@ public abstract class WrappingConverter extends Converter { public static Converter getDeepestConverter(final Converter converter, final GenericDomValue domValue) { Converter cur = converter; - for (Converter next; cur instanceof WrappingConverter; cur = next) { + Converter next; + int guard = 0; + while (cur instanceof WrappingConverter) { next = ((WrappingConverter)cur).getConverter(domValue); if (next == null) break; + cur = next; + if (guard++ > 10) { + throw new RuntimeException("Too deep wrapping for " + converter); + } } return cur; }