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