From fa009fd5a2cc058ee97507cb3f364fe4c857c653 Mon Sep 17 00:00:00 2001 From: Heqing Ya Date: Fri, 22 Mar 2024 16:32:58 -0700 Subject: [PATCH] Fix IndexOutOfBoundsException in DynamicCallManager --- src/main/java/gr/gousiosg/javacg/stat/DynamicCallManager.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/gr/gousiosg/javacg/stat/DynamicCallManager.java b/src/main/java/gr/gousiosg/javacg/stat/DynamicCallManager.java index 2c4e8813..b0068bca 100644 --- a/src/main/java/gr/gousiosg/javacg/stat/DynamicCallManager.java +++ b/src/main/java/gr/gousiosg/javacg/stat/DynamicCallManager.java @@ -81,6 +81,9 @@ public void retrieveCalls(Method method, JavaClass jc) { while (matcher.find()) { int bootIndex = Integer.parseInt(matcher.group(1)); BootstrapMethod bootMethod = boots[bootIndex]; + if (bootMethod.getBootstrapArguments().length < 2) { + continue; + } int calledIndex = bootMethod.getBootstrapArguments()[CALL_HANDLE_INDEX_ARGUMENT]; String calledName = getMethodNameFromHandleIndex(cp, calledIndex); String callerName = method.getName();