src/share/vm/runtime/javaCalls.cpp

Print this page
rev 6842 : mq

@@ -307,10 +307,17 @@
   // stack that has installed its own exception handlers
   os::os_exception_wrapper(call_helper, result, &method, args, THREAD);
 }
 
 void JavaCalls::call_helper(JavaValue* result, methodHandle* m, JavaCallArguments* args, TRAPS) {
+  if (DumpSharedSpaces) {
+    // During dumping, Java execution environment is not fully initialized. Also, Java execution
+    // may cause undesriable side-effect in the class metadata.
+    warning("must not execute Java bytecodes when dumping");
+    exit(2);
+  }
+
   methodHandle method = *m;
   JavaThread* thread = (JavaThread*)THREAD;
   assert(thread->is_Java_thread(), "must be called by a java thread");
   assert(method.not_null(), "must have a method to call");
   assert(!SafepointSynchronize::is_at_safepoint(), "call to Java code during VM operation");