From 409060afedadfe43653df972f825b205bf41ea15 Mon Sep 17 00:00:00 2001 From: Gary Gregory Date: Fri, 28 Apr 2023 08:47:48 -0400 Subject: [PATCH] [MSHARED-1247] java.lang.RuntimeException: Unknown constant pool type '17' --- .../dependency/analyzer/asm/ConstantPoolParser.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ConstantPoolParser.java b/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ConstantPoolParser.java index 3c53701..1b7f0c6 100644 --- a/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ConstantPoolParser.java +++ b/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ConstantPoolParser.java @@ -85,6 +85,9 @@ public class ConstantPoolParser { /** Constant CONSTANT_METHOD_TYPE=16 */ public static final byte CONSTANT_METHOD_TYPE = 16; + /** Constant CONSTANT_INVOKE=17 */ + public static final byte CONSTANT_INVOKE = 17; + /** Constant CONSTANT_INVOKE_DYNAMIC=18 */ public static final byte CONSTANT_INVOKE_DYNAMIC = 18; @@ -156,6 +159,9 @@ static Set parseConstantPoolClassReferences(ByteBuffer buf) { case CONSTANT_METHODHANDLE: consumeMethodHandle(buf); break; + case CONSTANT_INVOKE: + consumeDynamic(buf); + break; case CONSTANT_INVOKE_DYNAMIC: consumeInvokeDynamic(buf); break; @@ -260,6 +266,11 @@ private static void consumeMethodHandle(ByteBuffer buf) { buf.getChar(); } + private static void consumeDynamic(ByteBuffer buf) { + buf.getChar(); // u2 bootstrap_method_attr_index; + buf.getChar(); // u2 name_and_type_index; + } + private static void consumeInvokeDynamic(ByteBuffer buf) { buf.getChar(); buf.getChar();