src/hotspot/share/runtime/thread.cpp
changeset 52596 dfa02b3f728c
parent 52569 1a534c7926cc
child 52599 a2e22b1ee4a1
--- a/src/hotspot/share/runtime/thread.cpp	Fri Nov 16 23:39:51 2018 +0100
+++ b/src/hotspot/share/runtime/thread.cpp	Fri Nov 16 16:10:25 2018 -0800
@@ -4088,6 +4088,17 @@
   JvmtiExport::enter_onload_phase();
 
   for (agent = Arguments::agents(); agent != NULL; agent = agent->next()) {
+    // CDS dumping does not support native JVMTI agent.
+    // CDS dumping supports Java agent if the AllowArchivingWithJavaAgent diagnostic option is specified.
+    if (DumpSharedSpaces) {
+      if(!agent->is_instrument_lib()) {
+        vm_exit_during_cds_dumping("CDS dumping does not support native JVMTI agent, name", agent->name());
+      } else if (!AllowArchivingWithJavaAgent) {
+        vm_exit_during_cds_dumping(
+          "Must enable AllowArchivingWithJavaAgent in order to run Java agent during CDS dumping");
+      }
+    }
+
     OnLoadEntry_t  on_load_entry = lookup_agent_on_load(agent);
 
     if (on_load_entry != NULL) {
@@ -4100,6 +4111,7 @@
       vm_exit_during_initialization("Could not find Agent_OnLoad function in the agent library", agent->name());
     }
   }
+
   JvmtiExport::enter_primordial_phase();
 }