--- old/src/share/vm/classfile/classFileParser.cpp 2015-07-21 03:29:06.078506084 -0700 +++ new/src/share/vm/classfile/classFileParser.cpp 2015-07-21 03:29:05.994501909 -0700 @@ -3739,6 +3739,7 @@ // Timing assert(THREAD->is_Java_thread(), "must be a JavaThread"); JavaThread* jt = (JavaThread*) THREAD; + bool cf_changed_in_CFLH = false; PerfClassTraceTime ctimer(ClassLoader::perf_class_parse_time(), ClassLoader::perf_class_parse_selftime(), @@ -3778,6 +3779,7 @@ // class file data. cfs = new ClassFileStream(ptr, end_ptr - ptr, cfs->source()); set_stream(cfs); + cf_changed_in_CFLH = true; } } @@ -4221,6 +4223,11 @@ this_klass(), &all_mirandas, CHECK_(nullHandle)); } + // Add read edges to the unnamed modules of the bootstrap and app class loaders. + if (cf_changed_in_CFLH && !class_module.is_null() && module_entry->is_named()) { + JvmtiExport::add_default_read_edges(class_module, THREAD); + } + // Update the loader_data graph. record_defined_class_dependencies(this_klass, CHECK_NULL); --- old/src/share/vm/classfile/systemDictionary.hpp 2015-07-21 03:29:06.450524573 -0700 +++ new/src/share/vm/classfile/systemDictionary.hpp 2015-07-21 03:29:06.370520597 -0700 @@ -169,6 +169,7 @@ do_klass(StringBuffer_klass, java_lang_StringBuffer, Pre ) \ do_klass(StringBuilder_klass, java_lang_StringBuilder, Pre ) \ do_klass(misc_Unsafe_klass, sun_misc_Unsafe, Pre ) \ + do_klass(misc_Modules_klass, jdk_internal_misc_Modules, Pre ) \ \ /* support for CDS */ \ do_klass(ByteArrayInputStream_klass, java_io_ByteArrayInputStream, Pre ) \ --- old/src/share/vm/classfile/vmSymbols.hpp 2015-07-21 03:29:06.746539285 -0700 +++ new/src/share/vm/classfile/vmSymbols.hpp 2015-07-21 03:29:06.666535309 -0700 @@ -597,7 +597,10 @@ template(addThreadDumpForSynchronizers_signature, "(Ljava/lang/management/ThreadInfo;[Ljava/lang/Object;)V") \ \ /* JVMTI/java.lang.instrument support and VM Attach mechanism */ \ + template(jdk_internal_misc_Modules, "jdk/internal/misc/Modules") \ template(sun_misc_VMSupport, "sun/misc/VMSupport") \ + template(transformedByAgent_name, "transformedByAgent") \ + template(transformedByAgent_signature, "(Ljava/lang/reflect/Module;)V") \ template(appendToClassPathForInstrumentation_name, "appendToClassPathForInstrumentation") \ do_alias(appendToClassPathForInstrumentation_signature, string_void_signature) \ template(serializePropertiesToByteArray_name, "serializePropertiesToByteArray") \ --- old/src/share/vm/prims/jvmti.xml 2015-07-21 03:29:07.050554395 -0700 +++ new/src/share/vm/prims/jvmti.xml 2015-07-21 03:29:06.966550220 -0700 @@ -1,7 +1,7 @@