From fabbfdc7f81578775cd2245819d46302742fa2a9 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Wed, 15 Jan 2020 19:17:40 +0900 Subject: [PATCH] EA-214654: Add missing read action --- .../debugger/breakpoints/KotlinLineBreakpointType.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinLineBreakpointType.java b/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinLineBreakpointType.java index 965ab2ad16a..140803cab1f 100644 --- a/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinLineBreakpointType.java +++ b/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/breakpoints/KotlinLineBreakpointType.java @@ -47,6 +47,7 @@ import org.jetbrains.kotlin.lexer.KtTokens; import org.jetbrains.kotlin.psi.KtElement; import org.jetbrains.kotlin.psi.*; +import java.util.Collections; import java.util.List; import static org.jetbrains.kotlin.idea.debugger.breakpoints.BreakpointTypeUtilsKt.isBreakpointApplicable; @@ -108,7 +109,14 @@ public class KotlinLineBreakpointType extends JavaLineBreakpointType implements @Nullable private static KtFunction getLambdaByOrdinal(SourcePosition position, Integer ordinal) { if (ordinal != null && ordinal >= 0) { - List lambdas = BreakpointTypeUtilsKt.getLambdasAtLineIfAny(position); + List lambdas = ReadAction.compute(() -> { + PsiElement targetElement = position.getElementAt(); + if (targetElement == null || !targetElement.isValid()) { + return Collections.emptyList(); + } + return BreakpointTypeUtilsKt.getLambdasAtLineIfAny(position); + }); + if (lambdas.size() > ordinal) { return lambdas.get(ordinal); }