diff --git a/src/java.base/share/classes/jdk/internal/classfile/components/ClassRemapper.java b/src/java.base/share/classes/jdk/internal/classfile/components/ClassRemapper.java index f5b7a1071ef..ab94d61d6ce 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/components/ClassRemapper.java +++ b/src/java.base/share/classes/jdk/internal/classfile/components/ClassRemapper.java @@ -317,7 +317,8 @@ public sealed interface ClassRemapper extends ClassTransform { case InvokeDynamicInstruction idi -> cob.invokeDynamicInstruction(DynamicCallSiteDesc.of( idi.bootstrapMethod(), idi.name().stringValue(), - mapMethodDesc(idi.typeSymbol()))); + mapMethodDesc(idi.typeSymbol()), + idi.bootstrapArgs().stream().map(this::mapConstantValue).toArray(ConstantDesc[]::new))); case NewObjectInstruction c -> cob.newObjectInstruction(map(c.className().asSymbol())); case NewReferenceArrayInstruction c -> diff --git a/test/jdk/jdk/classfile/AdvancedTransformationsTest.java b/test/jdk/jdk/classfile/AdvancedTransformationsTest.java index d44ead1888c..c4cce557e55 100644 --- a/test/jdk/jdk/classfile/AdvancedTransformationsTest.java +++ b/test/jdk/jdk/classfile/AdvancedTransformationsTest.java @@ -211,6 +211,7 @@ class AdvancedTransformationsTest { "INVOKESTATIC, owner: AdvancedTransformationsTest$Bar, method name: fooMethod, method type: (LAdvancedTransformationsTest$Bar;)LAdvancedTransformationsTest$Bar", "method type: ()LAdvancedTransformationsTest$Bar;", "GETFIELD, owner: AdvancedTransformationsTest$Rec, field name: foo, field type: LAdvancedTransformationsTest$Bar;"); + assertFalse(out.contains("bootstrap method arguments indexes: []"), "bootstrap arguments lost"); } private static void assertContains(String actual, String... expected) {