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