class Hello {
public static void main(String[] args) {
System[][][] x = new System[0][0][0];
System.out.println(x);
}
}
$ java -XX:+AOTClassLinking -Xshare:dump -XX:SharedArchiveFile=Hello.temp-base.jsa
$ java -cp Hello.jar -XX:ArchiveClassesAtExit=Hello.dynamic.jsa -XX:SharedArchiveFile=Hello.temp-base.jsa Hello
$ java -cp Hello.jar -XX:SharedArchiveFile=Hello.dynamic.jsa -cp Hello.jar Hello
# assert(Universe::is_module_initialized() || (ModuleEntryTable::javabase_defined() && (module() == ModuleEntryTable::javabase_moduleEntry()->module_oop()))) failed: Incorrect java.lang.Module specification while creating mirror
Stack: [0x00007ffff7b00000,0x00007ffff7c00000], sp=0x00007ffff7bfc620, free space=1009k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xe97036] java_lang_Class::set_mirror_module_field(JavaThread*, Klass*, Handle, Handle)+0x3d0 (javaClasses.cpp:1057)
V [libjvm.so+0xe97818] java_lang_Class::create_mirror(Klass*, Handle, Handle, Handle, Handle, JavaThread*)+0x1fe (javaClasses.cpp:1168)
V [libjvm.so+0x118d10d] Klass::restore_unshareable_info(ClassLoaderData*, Handle, JavaThread*)+0x539 (klass.cpp:917)
V [libjvm.so+0x6b625c] ArrayKlass::restore_unshareable_info(ClassLoaderData*, Handle, JavaThread*)+0x30 (arrayKlass.cpp:222)
V [libjvm.so+0xe57a83] InstanceKlass::restore_unshareable_info(ClassLoaderData*, Handle, PackageEntry*, JavaThread*)+0x325 (instanceKlass.cpp:2874)
V [libjvm.so+0x165197a] SystemDictionary::preload_class(Handle, InstanceKlass*, JavaThread*)+0x5c2 (systemDictionary.cpp:1193)
V [libjvm.so+0x64a06d] AOTLinkedClassBulkLoader::preload_classes_in_table(Array<InstanceKlass*>*, char const*, Handle, JavaThread*)+0xf9 (aotLinkedClassBulkLoader.cpp:103)
V [libjvm.so+0x649e22] AOTLinkedClassBulkLoader::preload_classes_impl(JavaThread*)+0x12e (aotLinkedClassBulkLoader.cpp:77)
V [libjvm.so+0x649cd4] AOTLinkedClassBulkLoader::preload_classes(JavaThread*)+0x18 (aotLinkedClassBulkLoader.cpp:61)
V [libjvm.so+0x1741e63] vmClasses::resolve_all(JavaThread*)+0x83 (vmClasses.cpp:127)
V [libjvm.so+0x1652ef6] SystemDictionary::initialize(JavaThread*)+0x8e (systemDictionary.cpp:1623)
V [libjvm.so+0x16d66c9] Universe::genesis(JavaThread*)+0x3fb (universe.cpp:450)
V [libjvm.so+0x16d8ec3] universe2_init()+0x30 (universe.cpp:1118)
V [libjvm.so+0xe4cf4a] init_globals2()+0x9 (init.cpp:173)
V [libjvm.so+0x16a89e2] Threads::create_vm(JavaVMInitArgs*, bool*)+0x4d4 (threads.cpp:622)
V [libjvm.so+0xfad7ea] JNI_CreateJavaVM_inner(JavaVM_**, void**, void*)+0x93 (jni.cpp:3621)
V [libjvm.so+0xfadc20] JNI_CreateJavaVM+0x32 (jni.cpp:3712)
C [libjli.so+0x3cff] JavaMain+0x8f
C [libjli.so+0x7d29] ThreadJavaMain+0x9
C [libc.so.6+0x9caa4]
public static void main(String[] args) {
System[][][] x = new System[0][0][0];
System.out.println(x);
}
}
$ java -XX:+AOTClassLinking -Xshare:dump -XX:SharedArchiveFile=Hello.temp-base.jsa
$ java -cp Hello.jar -XX:ArchiveClassesAtExit=Hello.dynamic.jsa -XX:SharedArchiveFile=Hello.temp-base.jsa Hello
$ java -cp Hello.jar -XX:SharedArchiveFile=Hello.dynamic.jsa -cp Hello.jar Hello
# assert(Universe::is_module_initialized() || (ModuleEntryTable::javabase_defined() && (module() == ModuleEntryTable::javabase_moduleEntry()->module_oop()))) failed: Incorrect java.lang.Module specification while creating mirror
Stack: [0x00007ffff7b00000,0x00007ffff7c00000], sp=0x00007ffff7bfc620, free space=1009k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xe97036] java_lang_Class::set_mirror_module_field(JavaThread*, Klass*, Handle, Handle)+0x3d0 (javaClasses.cpp:1057)
V [libjvm.so+0xe97818] java_lang_Class::create_mirror(Klass*, Handle, Handle, Handle, Handle, JavaThread*)+0x1fe (javaClasses.cpp:1168)
V [libjvm.so+0x118d10d] Klass::restore_unshareable_info(ClassLoaderData*, Handle, JavaThread*)+0x539 (klass.cpp:917)
V [libjvm.so+0x6b625c] ArrayKlass::restore_unshareable_info(ClassLoaderData*, Handle, JavaThread*)+0x30 (arrayKlass.cpp:222)
V [libjvm.so+0xe57a83] InstanceKlass::restore_unshareable_info(ClassLoaderData*, Handle, PackageEntry*, JavaThread*)+0x325 (instanceKlass.cpp:2874)
V [libjvm.so+0x165197a] SystemDictionary::preload_class(Handle, InstanceKlass*, JavaThread*)+0x5c2 (systemDictionary.cpp:1193)
V [libjvm.so+0x64a06d] AOTLinkedClassBulkLoader::preload_classes_in_table(Array<InstanceKlass*>*, char const*, Handle, JavaThread*)+0xf9 (aotLinkedClassBulkLoader.cpp:103)
V [libjvm.so+0x649e22] AOTLinkedClassBulkLoader::preload_classes_impl(JavaThread*)+0x12e (aotLinkedClassBulkLoader.cpp:77)
V [libjvm.so+0x649cd4] AOTLinkedClassBulkLoader::preload_classes(JavaThread*)+0x18 (aotLinkedClassBulkLoader.cpp:61)
V [libjvm.so+0x1741e63] vmClasses::resolve_all(JavaThread*)+0x83 (vmClasses.cpp:127)
V [libjvm.so+0x1652ef6] SystemDictionary::initialize(JavaThread*)+0x8e (systemDictionary.cpp:1623)
V [libjvm.so+0x16d66c9] Universe::genesis(JavaThread*)+0x3fb (universe.cpp:450)
V [libjvm.so+0x16d8ec3] universe2_init()+0x30 (universe.cpp:1118)
V [libjvm.so+0xe4cf4a] init_globals2()+0x9 (init.cpp:173)
V [libjvm.so+0x16a89e2] Threads::create_vm(JavaVMInitArgs*, bool*)+0x4d4 (threads.cpp:622)
V [libjvm.so+0xfad7ea] JNI_CreateJavaVM_inner(JavaVM_**, void**, void*)+0x93 (jni.cpp:3621)
V [libjvm.so+0xfadc20] JNI_CreateJavaVM+0x32 (jni.cpp:3712)
C [libjli.so+0x3cff] JavaMain+0x8f
C [libjli.so+0x7d29] ThreadJavaMain+0x9
C [libc.so.6+0x9caa4]
- caused by
-
JDK-8350550 Preload classes from AOT cache during VM bootstrap
-
- Resolved
-
- relates to
-
JDK-8309240 Array classes should be stored in dynamic CDS archive
-
- Resolved
-
- links to
-
Commit(master)
openjdk/jdk/9fd86e37
-
Review(master)
openjdk/jdk/29078