--- a/src/hotspot/share/memory/filemap.cpp Fri Nov 16 23:39:51 2018 +0100
+++ b/src/hotspot/share/memory/filemap.cpp Fri Nov 16 16:10:25 2018 -0800
@@ -210,6 +210,7 @@
_verify_remote = BytecodeVerificationRemote;
_has_platform_or_app_classes = ClassLoaderExt::has_platform_or_app_classes();
_shared_base_address = SharedBaseAddress;
+ _allow_archiving_with_java_agent = AllowArchivingWithJavaAgent;
}
void SharedClassPathEntry::init(const char* name, bool is_modules_image, TRAPS) {
@@ -1358,6 +1359,21 @@
return false;
}
+ // Java agents are allowed during run time. Therefore, the following condition is not
+ // checked: (!_allow_archiving_with_java_agent && AllowArchivingWithJavaAgent)
+ // Note: _allow_archiving_with_java_agent is set in the shared archive during dump time
+ // while AllowArchivingWithJavaAgent is set during the current run.
+ if (_allow_archiving_with_java_agent && !AllowArchivingWithJavaAgent) {
+ FileMapInfo::fail_continue("The setting of the AllowArchivingWithJavaAgent is different "
+ "from the setting in the shared archive.");
+ return false;
+ }
+
+ if (_allow_archiving_with_java_agent) {
+ warning("This archive was created with AllowArchivingWithJavaAgent. It should be used "
+ "for testing purposes only and should not be used in a production environment");
+ }
+
return true;
}