From 8b3c22cea6262f83b6a0bc9d733b9dbb5f656c3f Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Fri, 19 Apr 2019 21:26:11 +0300 Subject: [PATCH] Debugger: Support hypothetical synchronized methods in the main class --- .../debugger/evaluate/classLoading/ClassLoadingAdapter.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/ClassLoadingAdapter.kt b/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/ClassLoadingAdapter.kt index 1c365729e67..bf87faddfd7 100644 --- a/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/ClassLoadingAdapter.kt +++ b/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/classLoading/ClassLoadingAdapter.kt @@ -65,6 +65,12 @@ interface ClassLoadingAdapter { private fun analyzeClass(classToLoad: ClassToLoad, info: ClassInfoForEvaluator): ClassInfoForEvaluator { val classNode = ClassNode().apply { ClassReader(classToLoad.bytes).accept(this, 0) } + for (method in classNode.methods) { + if ((method.access and Opcodes.ACC_SYNCHRONIZED) != 0) { + return info.copy(containsCodeUnsupportedInEval4J = true) + } + } + val methodToRun = classNode.methods.single { it.name == GENERATED_FUNCTION_NAME } val visitedLabels = hashSetOf