<div dir="ltr"><div>There is an issue with flexible constructors and certain synthetically-generated try/catch code, for example, when using switch patterns (where a try/catch for MatchException is sprinkled in).<br></div><div><br></div><div>Please see <a href="https://bugs.openjdk.org/browse/JDK-8332106">https://bugs.openjdk.org/browse/JDK-8332106</a> for an example.<br></div><div><br></div><div>As I understand it, this is due to the same verifier 'uninitializedThis' restriction that prevents bytecode rewriters from building a synthetic try/catch around super() calls, even if the catch clause always rethrows.</div><div><br></div><div>I may have this muddled, but I believe this restriction disallows an  'uninitializedThis' in a catch clause stack map even if the  'uninitializedThis' is never actually touched. In which case a seemingly obvious fix for this is to relax the restriction, but that's a JVMS change.</div><div><br></div><div>Are there other options?<br></div><div><br></div><div>Thanks,</div><div>-Archie<br></div><div><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">Archie L. Cobbs<br></div></div></div>