diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaFunctionalExpressionSearcher.java b/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaFunctionalExpressionSearcher.java index ed05eb281898..dee8b64c880e 100644 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaFunctionalExpressionSearcher.java +++ b/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaFunctionalExpressionSearcher.java @@ -64,11 +64,19 @@ public class JavaFunctionalExpressionSearcher extends QueryExecutorBase descriptors = calcDescriptors(p); AtomicInteger exprCount = new AtomicInteger(); AtomicInteger fileCount = new AtomicInteger(); - processOffsets(descriptors, (file, offsets) -> { - fileCount.incrementAndGet(); - exprCount.addAndGet(offsets.size()); - return processFile(consumer, descriptors, file, offsets); - }); + + PsiManager manager = ReadAction.compute(() -> p.getElementToSearch().getManager()); + manager.startBatchFilesProcessingMode(); + try { + processOffsets(descriptors, (file, offsets) -> { + fileCount.incrementAndGet(); + exprCount.addAndGet(offsets.size()); + return processFile(consumer, descriptors, file, offsets); + }); + } + finally { + manager.finishBatchFilesProcessingMode(); + } if (exprCount.get() > 0) { LOG.debug("Loaded " + exprCount.get() + " fun-expressions in " + fileCount.get() + " files"); }