RFR (S): JDK-8005642 -[lambda] The VM crashes with SIGSEGV when run with serialization/deserialization instrumentation

Bharadwaj Yadavalli bharadwaj.yadavalli at oracle.com
Thu Jan 31 08:19:39 PST 2013


I would like to get a couple of code reviews for the changes at 
http://cr.openjdk.java.net/~bharadwaj/8005642/webrev that fix the 
segmentation violation.

Dereferencing a null generic MethodDescriptor results in this 
segmentation failure.

The reason for a MethodDescriptor being NULL is as follows: When a class 
that implements an interface with a default method, does not itself have 
a concrete implementation of the default method, we need to select the 
appropriate implementation for the class. The selection algorithm walks 
the superclass + superinterface hierarchy as described in 
http://cr.openjdk.java.net/~kamg/default_methods_in_hotspot.txt. This 
walk involves class resolution which might throw ClassCirculatoryError 
that needs to be recognized. When such a situation occurs, 
ClassDescriptor and MethodDescriptor are NULL. Attempting to look up for 
the default method implementation should move on to the next node in the 
search tree and not continue to operate on a NULL MethodDescriptor.

This change adds the needed check for exception.

It also has a small fix to a segmentation violation due to NULL pointer 
access when -XX:+TraceClassLoadingPreorder is specified.

Thanks,

Bharadwaj

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20130131/b74508de/attachment.html 


More information about the hotspot-runtime-dev mailing list