[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-hotspot-runtime-dev
Subject: RFR (S): JDK-8005642 -[lambda] The VM crashes with SIGSEGV when run with serialization/deserializati
From: Bharadwaj Yadavalli <bharadwaj.yadavalli () oracle ! com>
Date: 2013-01-31 16:19:39
Message-ID: 510A999B.2030204 () oracle ! com
[Download RAW message or body]
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
[Attachment #3 (text/html)]
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
I would like to get a couple of code reviews for the changes at
<a class="moz-txt-link-freetext" \
href="http://cr.openjdk.java.net/~bharadwaj/8005642/webrev">http://cr.openjdk.java.net/~bharadwaj/8005642/webrev</a> \
that fix the segmentation violation.<br>
<br>
Dereferencing a null generic MethodDescriptor results in this
segmentation failure. <br>
<br>
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
<a class="moz-txt-link-freetext" \
href="http://cr.openjdk.java.net/~kamg/default_methods_in_hotspot.txt">http://cr.openjdk.java.net/~kamg/default_methods_in_hotspot.txt</a>.
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.<br>
<br>
This change adds the needed check for exception.<br>
<br>
It also has a small fix to a segmentation violation due to NULL
pointer access when -XX:+<font color="black">TraceClassLoadingPreorder</font>
is specified.<br>
<br>
Thanks,<br>
<br>
Bharadwaj<br>
<br>
</body>
</html>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic