<div dir="ltr"><div dir="ltr">On Sat, Feb 21, 2026 at 11:08 AM Eirik Bjørsnøs <<a href="mailto:eirbjo@gmail.com">eirbjo@gmail.com</a>> wrote:</div><div dir="ltr"><br></div><div class="gmail_quote gmail_quote_container"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Can this make ArrayDeque somewhat safer to use in early bootstrap code?</div></div></blockquote><div><br></div><div>Adding some context from testing:</div><div><br></div><div>When modifying the mentioned code to not avoid the lambda bulk operation, nothing crashes but the number of loaded classes during 'java -cp hello.jar' is increased from 576 to 663. Here's a full list of extra classes loaded:</div><div><br></div><div>88a89<br>> java.lang.NoSuchMethodException<br>148a150,170<br>> java.lang.classfile.Annotation<br>> java.lang.classfile.AnnotationElement<br>> java.lang.classfile.Attribute<br>> java.lang.classfile.AttributeMapper<br>> java.lang.classfile.AttributeMapper$AttributeStability<br>> java.lang.classfile.Attributes<br>> java.lang.classfile.BootstrapMethodEntry<br>> java.lang.classfile.ClassElement<br>> java.lang.classfile.ClassFileElement<br>> java.lang.classfile.FieldElement<br>> java.lang.classfile.MethodElement<br>> java.lang.classfile.TypeKind<br>> java.lang.classfile.attribute.RuntimeVisibleAnnotationsAttribute<br>> java.lang.classfile.constantpool.AnnotationConstantValueEntry<br>> java.lang.classfile.constantpool.ClassEntry<br>> java.lang.classfile.constantpool.ConstantPool<br>> java.lang.classfile.constantpool.ConstantPoolBuilder<br>> java.lang.classfile.constantpool.LoadableConstantEntry<br>> java.lang.classfile.constantpool.PoolEntry<br>> java.lang.classfile.constantpool.Utf8Entry<br>> java.lang.constant.ClassDesc<br>150a173,182<br>> java.lang.constant.ConstantDescs<br>> java.lang.constant.DirectMethodHandleDesc<br>> java.lang.constant.DirectMethodHandleDesc$Kind<br>> java.lang.constant.DynamicConstantDesc<br>> java.lang.constant.DynamicConstantDesc$AnonymousDynamicConstantDesc<br>> java.lang.constant.MethodHandleDesc<br>> java.lang.constant.MethodHandleDesc$1<br>> java.lang.constant.MethodTypeDesc<br>> java.lang.invoke.AbstractValidatingLambdaMetafactory<br>> java.lang.invoke.BootstrapMethodInvoker<br>153a186,193<br>> java.lang.invoke.DirectMethodHandle$Constructor<br>> java.lang.invoke.DirectMethodHandle$Holder<br>> java.lang.invoke.InfoFromMemberName<br>> java.lang.invoke.InnerClassLambdaMetafactory<br>> java.lang.invoke.InvokerBytecodeGenerator<br>> java.lang.invoke.InvokerBytecodeGenerator$8<br>> java.lang.invoke.Invokers<br>> java.lang.invoke.Invokers$Holder<br>154a195,201<br>> java.lang.invoke.LambdaForm$BasicType<br>> java.lang.invoke.LambdaForm$Holder<br>> java.lang.invoke.LambdaForm$Kind<br>> java.lang.invoke.LambdaForm$Name<br>> java.lang.invoke.LambdaForm$NamedFunction<br>> java.lang.invoke.LambdaMetafactory<br>> java.lang.invoke.LambdaProxyClassArchive<br>158a206,208<br>> java.lang.invoke.MethodHandleImpl$1<br>> java.lang.invoke.MethodHandleImpl$Intrinsic<br>> java.lang.invoke.MethodHandleInfo<br>163a214,215<br>> java.lang.invoke.MethodType$1<br>> java.lang.invoke.MethodTypeForm<br>169a222,223<br>> java.lang.invoke.VarHandle$AccessMode<br>> java.lang.invoke.VarHandle$AccessType<br>199a254<br>> java.lang.reflect.Array<br>270a326<br>> java.util.ArrayDeque$$Lambda/0x800000001<br>273d328<br>< java.util.ArrayList$Itr<br>359a415<br>> java.util.function.Consumer<br>393a450<br>> jdk.internal.access.JavaLangInvokeAccess<br>402a460,484<br>> jdk.internal.classfile.impl.AbstractAttributeMapper<br>> jdk.internal.classfile.impl.AbstractAttributeMapper$RuntimeVisibleAnnotationsMapper<br>> jdk.internal.classfile.impl.AbstractElement<br>> jdk.internal.classfile.impl.AbstractPoolEntry<br>> jdk.internal.classfile.impl.AbstractPoolEntry$AbstractNamedEntry<br>> jdk.internal.classfile.impl.AbstractPoolEntry$AbstractRefEntry<br>> jdk.internal.classfile.impl.AbstractPoolEntry$ClassEntryImpl<br>> jdk.internal.classfile.impl.AbstractPoolEntry$Utf8EntryImpl<br>> jdk.internal.classfile.impl.AbstractPoolEntry$Utf8EntryImpl$State<br>> jdk.internal.classfile.impl.AnnotationImpl<br>> jdk.internal.classfile.impl.BootstrapMethodEntryImpl<br>> jdk.internal.classfile.impl.EntryMap<br>> jdk.internal.classfile.impl.SplitConstantPool<br>> jdk.internal.classfile.impl.TemporaryConstantPool<br>> jdk.internal.classfile.impl.UnboundAttribute<br>> jdk.internal.classfile.impl.UnboundAttribute$UnboundRuntimeVisibleAnnotationsAttribute<br>> jdk.internal.classfile.impl.Util<br>> jdk.internal.classfile.impl.Util$Writable<br>> jdk.internal.constant.ArrayClassDescImpl<br>> jdk.internal.constant.ClassOrInterfaceDescImpl<br>> jdk.internal.constant.ConstantUtils<br>> jdk.internal.constant.DirectMethodHandleDescImpl<br>> jdk.internal.constant.DirectMethodHandleDescImpl$1<br>> jdk.internal.constant.MethodTypeDescImpl<br>> jdk.internal.constant.PrimitiveClassDescImpl<br>512a595<br>> jdk.internal.util.WeakReferenceKey<br>524a608<br>> sun.invoke.util.ValueConversions<br>525a610,612<br>> sun.invoke.util.VerifyType<br>> sun.invoke.util.Wrapper<br>> sun.invoke.util.Wrapper$Format<br></div><div><br></div><div>Eirik. </div></div></div>