diff --git a/platform/core-impl/src/com/intellij/openapi/editor/ex/PrioritizedDocumentListener.java b/platform/core-impl/src/com/intellij/openapi/editor/ex/PrioritizedDocumentListener.java index 087340cbacc3..40510a7cd79f 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/ex/PrioritizedDocumentListener.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/ex/PrioritizedDocumentListener.java @@ -41,6 +41,7 @@ public interface PrioritizedDocumentListener extends DocumentListener { } private int getPriority(Object o) { + assert o != null; if (o instanceof PrioritizedDocumentListener) return ((PrioritizedDocumentListener)o).getPriority(); return Integer.MAX_VALUE; } diff --git a/platform/core-impl/src/com/intellij/openapi/editor/impl/DocumentImpl.java b/platform/core-impl/src/com/intellij/openapi/editor/impl/DocumentImpl.java index 437d7233a42c..f699133c0487 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/impl/DocumentImpl.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/impl/DocumentImpl.java @@ -679,7 +679,8 @@ public class DocumentImpl extends UserDataHolderBase implements DocumentEx { private DocumentListener[] getCachedListeners() { DocumentListener[] cachedListeners = myCachedDocumentListeners; if (cachedListeners == null) { - DocumentListener[] listeners = myDocumentListeners.toArray(new DocumentListener[myDocumentListeners.size()]); + List copy = new ArrayList(myDocumentListeners); + DocumentListener[] listeners = copy.toArray(new DocumentListener[copy.size()]); Arrays.sort(listeners, PrioritizedDocumentListener.COMPARATOR); myCachedDocumentListeners = cachedListeners = listeners; }