--- old/src/share/vm/runtime/signature.cpp 2017-07-27 15:23:53.834653342 +0200 +++ new/src/share/vm/runtime/signature.cpp 2017-07-27 15:23:53.754653345 +0200 @@ -386,10 +386,12 @@ int begin = _begin; int end = _end; - if ( ( _signature->byte_at(_begin) == 'L' || _signature->byte_at(_begin) == 'Q' ) - && _signature->byte_at(_end-1) == ';') { + if (_type == T_OBJECT || _type == T_VALUETYPE) { begin++; end--; + if (begin == end) { + return (_type == T_OBJECT) ? vmSymbols::java_lang_Object() : vmSymbols::java_lang____Value(); + } } // Save names for cleaning up reference count at the end of