From 2da7026844c7409243c11bedaaa131dbce84860a Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Fri, 30 Jun 2017 13:31:00 +0200 Subject: [PATCH] avoid synchronous ensureUpToDate to prevent deadlock --- .../intellij/util/indexing/FileBasedIndexImpl.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java index 32673635d193..bfdbec406a8a 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java @@ -1938,13 +1938,15 @@ public class FileBasedIndexImpl extends FileBasedIndex implements BaseComponent, !PowerSaveMode.isEnabled()) { myScheduledVfsEventsWorkers.incrementAndGet(); myVfsEventsExecutor.submit(this::processFilesInReadActionWithYieldingToWriteAction); - - for(Project project:ProjectManager.getInstance().getOpenProjects()) { - DumbServiceImpl dumbService = DumbServiceImpl.getInstance(project); - DumbModeTask task = FileBasedIndexProjectHandler.createChangedFilesIndexingTask(project); - if (task != null) { - dumbService.queueTask(task); + if (!ApplicationManager.getApplication().isHeadlessEnvironment()) { // avoid synchronous ensureUpToDate to prevent deadlock + for(Project project:ProjectManager.getInstance().getOpenProjects()) { + DumbServiceImpl dumbService = DumbServiceImpl.getInstance(project); + DumbModeTask task = FileBasedIndexProjectHandler.createChangedFilesIndexingTask(project); + + if (task != null) { + dumbService.queueTask(task); + } } } }