From 100e6b296e94e4d9fb502426cb207bc6d7a57307 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 28 Apr 2010 09:25:39 +0400 Subject: [PATCH] IOOB in injected --- .../codeInsight/folding/impl/FoldingUpdate.java | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/folding/impl/FoldingUpdate.java b/platform/lang-impl/src/com/intellij/codeInsight/folding/impl/FoldingUpdate.java index 2551e2a1c50c..a7469b0750a8 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/folding/impl/FoldingUpdate.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/folding/impl/FoldingUpdate.java @@ -132,19 +132,16 @@ public class FoldingUpdate { getFoldingsFor(injectedFile, injectedDocument, map, false); } - - final Runnable operation = new Runnable() { + return new Runnable() { public void run() { for (int i = 0; i < injectedEditors.size(); i++) { EditorWindow injectedEditor = injectedEditors.get(i); + if (!injectedEditor.getDocument().isValid()) continue; Map map = maps.get(i); - new UpdateFoldRegionsOperation(project, injectedEditor, map, applyDefaultState, true).run(); + UpdateFoldRegionsOperation op = new UpdateFoldRegionsOperation(project, injectedEditor, map, applyDefaultState, true); + editor.getFoldingModel().runBatchFoldingOperationDoNotCollapseCaret(op); } - } - }; - return new Runnable() { - public void run() { - editor.getFoldingModel().runBatchFoldingOperationDoNotCollapseCaret(operation); + editor.putUserData(LAST_UPDATE_INJECTED_STAMP_KEY, timeStamp); } };