From 2be12859127f3b3521c0b7c70871951b34b60c9d Mon Sep 17 00:00:00 2001 From: aph Date: Fri, 16 Jan 2015 09:15:22 +0100 Subject: [PATCH] 6584008: jvmtiStringPrimitiveCallback should not be invoked when string value is null Reviewed-by: sla, sspitsyn --- src/share/vm/prims/jvmtiTagMap.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/share/vm/prims/jvmtiTagMap.cpp b/src/share/vm/prims/jvmtiTagMap.cpp index 3967e5bb1..1ae7ce63d 100644 --- a/src/share/vm/prims/jvmtiTagMap.cpp +++ b/src/share/vm/prims/jvmtiTagMap.cpp @@ -1045,10 +1045,16 @@ static jint invoke_string_value_callback(jvmtiStringPrimitiveValueCallback cb, { 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) { -- GitLab