From 98cd54582868e54d754b9d312f9f0abcb8309b06 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 11 Apr 2012 16:10:01 +0400 Subject: [PATCH] EA-35287 - NPE: DocumentImpl.changedUpdate --- .../openapi/editor/ex/PrioritizedDocumentListener.java | 1 + .../src/com/intellij/openapi/editor/impl/DocumentImpl.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) 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; }