Hi Staffan,

I would think this is the correct fix.

The other two constant pool "error" tags, besides UnresolvedClassInError, which 
signal constant pool resolution errors are MethodTypeInError and 
MethodHandleInError - these error tags are associated with their corresponding 
"success" tags in switch targets in ConstantPool::copy_entry_to(), as well as 
in additional routines in constantPool.cpp.

In addition, in other routines in ConstantPool.cpp, the error tag 
JVM_CONSTANT_UnresolvedClassInError is associated with 
JVM_CONSTANT_UnresolvedClass -  ConstantPool::resolve_constant_at_impl() for 
example.

Thanks
Markus


-----Original Message-----
From: Staffan Larsen 
Sent: den 21 februari 2014 15:11
To: hotspot-runtime-dev; serviceability-dev@openjdk.java.net 
serviceability-dev@openjdk.java.net
Subject: RFR: 8035150 ShouldNotReachHere() in ConstantPool::copy_entry_to

This is an attempt to solve a crash while redefining a class that has 
unresolved class references in its constant pool. I would appreciate some extra 
scrutiny here since I am unfamiliar with this code path.

I have also added a test that causes a JVM crash without the fix. 

The updates to the test library is all code copied from the jdk version of the 
test library.

webrev: http://cr.openjdk.java.net/~sla/8035150/webrev.00/
bug: https://bugs.openjdk.java.net/browse/JDK-8035150

Thanks,
/Staffan

Reply via email to