Request for review (S): 6865265 JVM crashes with "missing exception handler" error
volker.simonis at gmail.com
Tue Jul 26 10:20:49 PDT 2011
I've made "original_exception" a Handle as suggested by Keith. Here's
the new webrev:
Regarding Keith' comments about the verification process: he's right,
'VerificationType::is_reference_assignable_from()' loads both
references with the same class loader (the initiating one in this
case). Initially I though that verifying if an Exception class in the
class file's exception table is "java.lang.Throwable" only by name may
be not enough, because a custom system class loader could load a bogus
Throwable class which is different from the one loaded by the boot
class loader. But I've just verified that such a scenario is
prohibited by 'ClassLoader.defineClass()' which is final and rejects
the loading of classes from the 'java.' package.
On Mon, Jul 25, 2011 at 8:19 PM, Vladimir Kozlov
<vladimir.kozlov at oracle.com> wrote:
> Resending to all.
> Keith McGuigan wrote:
>> I think the code looks ok, but why not use a Handle for the
>> "original_exception" in runtime.cpp -- then you don't need to worry about
>> the GC case either.
>> As to the question about the verifier comparing by name, this is correct
>> (in that this is what the verifier spec requires, IIRC), but intuitively it
>> makes sense anyway because the class's current class loader is the
>> initiating loader for any referenced class that might need to be loaded.
>> Thus two different references to classes with the same name will always
>> resolve to the same class implementation so a system dictionary lookup is
>> unnecessary. The verifier actively attempts to NOT load or initialize
>> classes when it can, but in some cases it must, unfortunately.
>> - Keith
>> On Jul 25, 2011, at 1:14 PM, Vladimir Kozlov wrote:
>>> Forwarding to RT since runtime code is also involved.
>>> -------- Original Message --------
>>> Subject: Request for review (S): 6865265 JVM crashes with "missing
>>> exception handler" error
>>> Date: Mon, 25 Jul 2011 18:58:58 +0200
>>> From: Volker Simonis <volker.simonis at gmail.com>
>>> To: hotspot compiler <hotspot-compiler-dev at openjdk.java.net>
>>> Although I've found a tiny test case for 6865265 and a small fix for
>>> the problem, I'm still not sure if my fix is complete.
>>> I would appreciate it very much if somebody could review my (somewhat
>>> lengthy) explanation for the fix and answer the two questions I
>>> Both, the explanation of the fix and the questions are in the webrev at:
More information about the hotspot-runtime-dev