From 0dd5034a1d4b48fae121cbdb699238371c780d54 Mon Sep 17 00:00:00 2001 From: kunshen Date: Mon, 25 Mar 2019 13:28:47 +0300 Subject: [PATCH] Do not throw exception when unable to get constant pool #1097 Bug: https://issuetracker.google.com/issues/123863053 It is becuase ART(Android) JVM doesn't support the 'getConstantPool' capability. --- .../src/com/intellij/debugger/jdi/MethodBytecodeUtil.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/java/debugger/impl/src/com/intellij/debugger/jdi/MethodBytecodeUtil.java b/java/debugger/impl/src/com/intellij/debugger/jdi/MethodBytecodeUtil.java index 75320b538600..c0ca3d13a8fa 100644 --- a/java/debugger/impl/src/com/intellij/debugger/jdi/MethodBytecodeUtil.java +++ b/java/debugger/impl/src/com/intellij/debugger/jdi/MethodBytecodeUtil.java @@ -292,6 +292,11 @@ public class MethodBytecodeUtil { return locations; } + // Android Studio: 'getConstantPool' is not supported on android. (b/123863053) + if (!method.declaringType().virtualMachine().canGetConstantPool()) { + return locations; + } + int lineNumber = locations.get(0).lineNumber(); List mask = new ArrayList<>(locationsSize); visit(method, new MethodVisitor(Opcodes.API_VERSION) {