From b6ace04d590f093d6027a24c24605299b5197845 Mon Sep 17 00:00:00 2001 From: Yaroslav Lepenkin Date: Fri, 20 May 2016 19:37:53 +0300 Subject: [PATCH] DetectIndentTask: shutdown in continuation --- .../DetectAndAdjustIndentOptionsTask.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/psi/codeStyle/DetectAndAdjustIndentOptionsTask.java b/platform/lang-impl/src/com/intellij/psi/codeStyle/DetectAndAdjustIndentOptionsTask.java index 4da4240423cc..4e39315cf69b 100644 --- a/platform/lang-impl/src/com/intellij/psi/codeStyle/DetectAndAdjustIndentOptionsTask.java +++ b/platform/lang-impl/src/com/intellij/psi/codeStyle/DetectAndAdjustIndentOptionsTask.java @@ -22,6 +22,7 @@ import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.progress.util.ReadTask; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.EmptyRunnable; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiFile; import com.intellij.psi.codeStyle.CommonCodeStyleSettings.IndentOptions; @@ -79,8 +80,7 @@ class DetectAndAdjustIndentOptionsTask extends ReadTask { public Continuation performInReadAction(@NotNull ProgressIndicator indicator) throws ProcessCanceledException { PsiFile file = getFile(); if (file == null) { - myBoundedExecutor.shutdown(); - return null; + return continuationWithExecutorShutdown(EmptyRunnable.INSTANCE); } if (!PsiDocumentManager.getInstance(myProject).isCommitted(myDocument)) { @@ -90,9 +90,14 @@ class DetectAndAdjustIndentOptionsTask extends ReadTask { IndentOptionsDetectorImpl detector = new IndentOptionsDetectorImpl(file, indicator); IndentOptionsAdjuster adjuster = detector.getIndentOptionsAdjuster(); - myBoundedExecutor.shutdown(); - - return adjuster != null ? new Continuation(() -> adjustOptions(adjuster)) : null; + return continuationWithExecutorShutdown(adjuster != null ? () -> adjustOptions(adjuster) : EmptyRunnable.INSTANCE); + } + + private Continuation continuationWithExecutorShutdown(Runnable runnable) { + return new Continuation(() -> { + myBoundedExecutor.shutdown(); + runnable.run(); + }); } private void adjustOptions(IndentOptionsAdjuster adjuster) {