Blob Blame History Raw
# HG changeset patch
# User aph
# Date 1421396122 -3600
#      Fri Jan 16 09:15:22 2015 +0100
# Node ID e7991ccab2eee66771f5e9dd644a35961848097f
# Parent  967ae4d849eb20b4b63c399bc3f376dfc0f9d2cc
6584008, PR2192, RH1173326: jvmtiStringPrimitiveCallback should not be invoked when string value is null
Reviewed-by: sla, sspitsyn

diff -r 967ae4d849eb -r e7991ccab2ee src/share/vm/prims/jvmtiTagMap.cpp
--- openjdk/hotspot/src/share/vm/prims/jvmtiTagMap.cpp	Tue Jul 15 22:55:15 2014 +0100
+++ openjdk/hotspot/src/share/vm/prims/jvmtiTagMap.cpp	Fri Jan 16 09:15:22 2015 +0100
@@ -1045,10 +1045,16 @@
 {
   assert(str->klass() == SystemDictionary::String_klass(), "not a string");
 
+  typeArrayOop s_value = java_lang_String::value(str);
+
+  // JDK-6584008: the value field may be null if a String instance is
+  // partially constructed.
+  if (s_value == NULL) {
+    return 0;
+  }
   // get the string value and length
   // (string value may be offset from the base)
   int s_len = java_lang_String::length(str);
-  typeArrayOop s_value = java_lang_String::value(str);
   int s_offset = java_lang_String::offset(str);
   jchar* value;
   if (s_len > 0) {