Confusion about stack map verify of constructors
David Holmes
david.holmes at oracle.com
Fri Oct 8 00:06:07 UTC 2021
I'm sure this question was asked fairly recently ...
On 29/06/2021 5:52 pm, NekoCaffeine wrote:
> Hi everyone,
>
>
> When a super constructor is called in a TryCatchBlock,
You are not allowed to call a super constructor in a way that you can
catch exceptions from it. If a super constructor fails exceptionally
then the current constructor must also fail exceptionally and creation
of the object does not take place. Otherwise you would be able to create
a subclass instance with superclass parts that violated superclass
invariants.
David
-----
> none of the following exception handler locals will pass validation,
> uninitializedThis, referenceName, TOP, <empty>, java/lang/Object.
>
>
> Where uninitializedThis and referenceName are mutually exclusive,
> and either one will fail because it does not contain the other.
> TOP will fail because it is not compatible with the flags of uninitializedThis.
> <empty> will fail for incompatibility with uninitializedThis.
>
>
> Is there a stackframe that passes validation?
>
>
> Thanks in advance,
> NekoCaffeine
>
More information about the hotspot-runtime-dev
mailing list