hotspot/src/share/vm/prims/unsafe.cpp
changeset 37267 ad8c0e8de29f
parent 36827 53d2d43551d2
parent 37248 11a660dbbb8e
child 37480 291ee208fb72
child 38014 8731fa11f766
--- a/hotspot/src/share/vm/prims/unsafe.cpp	Mon Apr 04 13:40:18 2016 -0700
+++ b/hotspot/src/share/vm/prims/unsafe.cpp	Thu Apr 07 09:47:48 2016 -0700
@@ -26,6 +26,7 @@
 #include "classfile/classFileStream.hpp"
 #include "classfile/vmSymbols.hpp"
 #include "memory/allocation.inline.hpp"
+#include "memory/resourceArea.hpp"
 #include "oops/objArrayOop.inline.hpp"
 #include "oops/oop.inline.hpp"
 #include "prims/jni.h"
@@ -867,7 +868,10 @@
   }
 
   const Klass* host_klass = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(host_class));
-  assert(host_klass != NULL, "invariant");
+  // Primitive types have NULL Klass* fields in their java.lang.Class instances.
+  if (host_klass == NULL) {
+    THROW_0(vmSymbols::java_lang_IllegalArgumentException());
+  }
 
   const char* host_source = host_klass->external_name();
   Handle      host_loader(THREAD, host_klass->class_loader());