RFR: 8035150 ShouldNotReachHere() in ConstantPool::copy_entry_to

Markus Gronlund markus.gronlund at oracle.com
Mon Feb 24 01:42:42 PST 2014


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 at openjdk.java.net serviceability-dev at 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


More information about the serviceability-dev mailing list