JDK-8247377 : Zero and Minimal VMs are broken after JDK-8198698 ('SystemDictionaryShared' has not been declared)
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2020-06-10
  • Updated: 2024-10-17
  • Resolved: 2020-06-11
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 15 JDK 16
15 b27Fixed 16Fixed
Related Reports
Relates :  
Description
/data/workspace/jdk/src/hotspot/share/prims/jvm.cpp: In function 'void JVM_RegisterLambdaProxyClassForArchiving(JNIEnv*, jclass, jstring, jobject, jobject, jobject, jobject, jclass)':
/data/workspace/jdk/src/hotspot/share/prims/jvm.cpp:3773:3: error: 'SystemDictionaryShared' has not been declared
   SystemDictionaryShared::add_lambda_proxy_class(caller_ik, lambda_ik, invoked_name, invoked_type,
   ^~~~~~~~~~~~~~~~~~~~~~
/data/workspace/jdk/src/hotspot/share/prims/jvm.cpp: In function '_jclass* JVM_LookupLambdaProxyClassFromArchive(JNIEnv*, jclass, jstring, jobject, jobject, jobject, jobject, jboolean)':
/data/workspace/jdk/src/hotspot/share/prims/jvm.cpp:3787:8: error: 'DynamicArchive' has not been declared
   if (!DynamicArchive::is_mapped()) {
        ^~~~~~~~~~~~~~
/data/workspace/jdk/src/hotspot/share/prims/jvm.cpp:3817:30: error: 'SystemDictionaryShared' has not been declared
   InstanceKlass* lambda_ik = SystemDictionaryShared::get_shared_lambda_proxy_class(caller_ik, invoked_name, invoked_type,
                              ^~~~~~~~~~~~~~~~~~~~~~
/data/workspace/jdk/src/hotspot/share/prims/jvm.cpp:3821:36: error: 'SystemDictionaryShared' has not been declared
     InstanceKlass* loaded_lambda = SystemDictionaryShared::prepare_shared_lambda_proxy_class(lambda_ik, caller_ik, initialize, THREAD);
Comments
Changeset: 462f8068 Author: Jie Fu <jiefu@openjdk.org> Date: 2020-06-11 10:08:33 +0000 URL: https://git.openjdk.java.net/lanai/commit/462f8068
02-07-2020

URL: https://hg.openjdk.java.net/jdk/jdk/rev/7287fff412d4 User: jiefu Date: 2020-06-11 02:33:33 +0000
11-06-2020

Suggested fix: diff --git a/src/hotspot/share/prims/jvm.cpp b/src/hotspot/share/prims/jvm.cpp --- a/src/hotspot/share/prims/jvm.cpp +++ b/src/hotspot/share/prims/jvm.cpp @@ -3736,6 +3736,7 @@ jobject instantiatedMethodType, jclass lambdaProxyClass)) JVMWrapper("JVM_RegisterLambdaProxyClassForArchiving"); +#if INCLUDE_CDS if (!DynamicDumpSharedSpaces) { return; } @@ -3772,6 +3773,9 @@ SystemDictionaryShared::add_lambda_proxy_class(caller_ik, lambda_ik, invoked_name, invoked_type, method_type, m, instantiated_method_type); +#else + return; +#endif // INCLUDE_CDS JVM_END @@ -3784,6 +3788,7 @@ jobject instantiatedMethodType, jboolean initialize)) JVMWrapper("JVM_LookupLambdaProxyClassFromArchive"); +#if INCLUDE_CDS if (!DynamicArchive::is_mapped()) { return NULL; } @@ -3822,6 +3827,9 @@ jcls = loaded_lambda == NULL ? NULL : (jclass) JNIHandles::make_local(env, loaded_lambda->java_mirror()); } return jcls; +#else + return NULL; +#endif // INCLUDE_CDS JVM_END JVM_ENTRY(jboolean, JVM_IsCDSDumpingEnabled(JNIEnv* env))
11-06-2020