<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Segoe UI";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
        {font-family:Menlo;
        panose-1:2 11 6 9 3 8 4 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-ligatures:standardcontextual;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        font-family:"Calibri",sans-serif;
        mso-ligatures:none;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="en-CZ" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">As a fix of <a href="https://bugs.openjdk.org/browse/JDK-8321248">
JDK-8321248</a> I would like to propose following “last minute” ClassFile API minor change:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">PR: <a href="https://github.com/openjdk/jdk/pull/16947">
https://github.com/openjdk/jdk/pull/16947</a>  <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB">ClassFile API </span><span style="font-size:9.0pt;font-family:Menlo;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB">ClassModel::verify</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB"> accepts </span><span style="font-size:9.0pt;font-family:Menlo;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB">ClassHierarchyResolver</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB"> as
 an optional argument and does not respect </span><span style="font-size:9.0pt;font-family:Menlo;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB">ClassFile.ClassHierarchyResolverOption</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB"> of
 the actual context.<br>
Parsing, building and transforming take options from the actual </span><span style="font-size:9.0pt;font-family:Menlo;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB">ClassFile</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB"> context
 and verification should follow the same API pattern.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB">Th</span><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB">e
 proposed</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB"> patch removes </span><span style="font-size:9.0pt;font-family:Menlo;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB">ClassModel::verify</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB"> methods
 and introduces new top level methods:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:Menlo;color:#1F2328;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none;mso-fareast-language:EN-GB">         List<VerifyError> ClassFile::verify(ClassModel model);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:Menlo;color:#1F2328;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none;mso-fareast-language:EN-GB">         List<VerifyError> ClassFile::verify(byte[] bytes);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:Menlo;color:#1F2328;border:none windowtext 1.0pt;padding:0cm;mso-ligatures:none;mso-fareast-language:EN-GB">         List<VerifyError> ClassFile::verify(Path path);<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB">T</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB">his
 bug technically requires a CSR</span><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB">, which is
</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB">temporary
</span><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB">not possible</span><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;mso-ligatures:none;mso-fareast-language:EN-GB">
 to create.<br>
<br>
<o:p></o:p></span></p>
<p class="MsoNormal"><span class="apple-converted-space"><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;background:white"> </span></span><span class="apple-converted-space"><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;background:white">Please
 let me know your comments here or in the PR review.<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="apple-converted-space"><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;background:white"><o:p> </o:p></span></span></p>
<p class="MsoNormal"><span class="apple-converted-space"><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;background:white">Thanks,<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="apple-converted-space"><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;background:white">Adam<o:p></o:p></span></span></p>
<p class="MsoNormal"><span class="apple-converted-space"><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#1F2328;background:white"><o:p> </o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</body>
</html>