From a0f4efcd3dadcc0722816b1aa9cdcc52d8b3e1c6 Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Thu, 27 Feb 2014 18:16:09 +0100 Subject: [PATCH] cleanup after batch folding operation end even in case of exception: to avoid observing invalid fold regions on subsequent batch folding operations --- .../openapi/editor/impl/FoldingModelImpl.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/FoldingModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/FoldingModelImpl.java index 962230e8680e..5cfc4d00facb 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/FoldingModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/FoldingModelImpl.java @@ -212,17 +212,20 @@ public class FoldingModelImpl implements FoldingModelEx, PrioritizedDocumentList myIsBatchFoldingProcessing = true; myFoldTree.myCachedLastIndex = -1; - operation.run(); - myFoldTree.myCachedLastIndex = -1; + try { + operation.run(); + } finally { + myFoldTree.myCachedLastIndex = -1; - if (!oldBatchFlag) { - if (myFoldRegionsProcessed) { - notifyBatchFoldingProcessingDone(moveCaret); - myFoldRegionsProcessed = false; + if (!oldBatchFlag) { + if (myFoldRegionsProcessed) { + notifyBatchFoldingProcessingDone(moveCaret); + myFoldRegionsProcessed = false; + } + myIsBatchFoldingProcessing = false; } - myIsBatchFoldingProcessing = false; + myDoNotCollapseCaret = oldDontCollapseCaret; } - myDoNotCollapseCaret = oldDontCollapseCaret; } @Override