<html xmlns:v="urn:schemas-microsoft-com:vml" 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=gb2312"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:等线;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Segoe UI";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
        {font-family:"\@等线";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        font-size:10.5pt;
        font-family:等线;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:宋体;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:等线;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:等线;}
/* Page Definitions */
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:721445752;
        mso-list-template-ids:-2057299514;}
@list l0:level1
        {mso-level-start-at:2;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1
        {mso-list-id:1023628861;
        mso-list-template-ids:1143396788;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=ZH-CN link="#0563C1" vlink="#954F72" style='text-justify-trim:punctuation'><div class=WordSection1><p class=MsoNormal><span lang=EN-US>Dear all.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>We have submitted a PR(<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_oracle_graal_pull_1881&d=DwQGaQ&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=P1aEbpQqX18a0ssutGCeizsWEVvvJcWvSeSxdI9X3-o&m=FXCDwCjeXfrva-XX8Dw9BecnFiVi92z7thtkOspf-Pk&s=xhcRBZoMYR5bQurl9t7ud6xfezaJGzekrikTNXb1FvE&e=">https://github.com/oracle/graal/pull/1881</a>) for 2 things:<o:p></o:p></span></p><ol start=1 type=1><li class=MsoNormal style='color:#24292E;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-align:left;mso-list:l1 level1 lfo1'><span lang=EN-US style='font-family:"Segoe UI",sans-serif'>When getResource methods(<i>java.lang.ClassLoader.getResource, java.lang.ClassLoader.getSystemResource, java.lang.ClassLoader.getResourceAsStream, java.lang.ClassLoader.getSystemResourceAsStream, java.lang.ClassLoader.getResources, java.lang.ClassLoader.getSystemResources, java.lang.System.getResource, java.lang.System.getResourceAsStream</i>) get resources from a jar file, reserve a tailored jar file in file system and ship it together with the executable native image file. It keeps compatible with tradational Java behavior.<br><b>-Dsvm.resources.jarLocation=</b> gives the preserve location, and the default value is resources/jars.<br><b>-Dsvm.resource.preserveJarRes=true</b> to enable this patch, by default its false.<o:p></o:p></span></li></ol><p class=MsoNormal align=left style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:15.0pt;text-align:left;text-indent:21.0pt'><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E'>The URL protocols returned by getResource methods in Java, SVM and this patch are listed in the following table:<o:p></o:p></span></p><table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=0 style='width:485.25pt;border-collapse:collapse'><thead><tr><td style='border:solid #DFE2E5 1.0pt;background:white;padding:4.5pt 9.75pt 4.5pt 9.75pt'><p class=MsoNormal align=center style='margin-bottom:12.0pt;text-align:center'><b><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E'>Resource locations<o:p></o:p></span></b></p></td><td style='border:solid #DFE2E5 1.0pt;border-left:none;background:white;padding:4.5pt 9.75pt 4.5pt 9.75pt'><p class=MsoNormal align=center style='margin-bottom:12.0pt;text-align:center'><b><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E'>Protocol in Java<o:p></o:p></span></b></p></td><td style='border:solid #DFE2E5 1.0pt;border-left:none;background:white;padding:4.5pt 9.75pt 4.5pt 9.75pt'><p class=MsoNormal align=center style='margin-bottom:12.0pt;text-align:center'><b><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E'>Protocol in SVM<o:p></o:p></span></b></p></td><td style='border:solid #DFE2E5 1.0pt;border-left:none;background:white;padding:4.5pt 9.75pt 4.5pt 9.75pt'><p class=MsoNormal align=center style='margin-bottom:12.0pt;text-align:center'><b><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E'>Protocol in this patch<o:p></o:p></span></b></p></td></tr></thead><tr><td style='border:solid #DFE2E5 1.0pt;border-top:none;background:white;padding:4.5pt 9.75pt 4.5pt 9.75pt'><p class=MsoNormal align=left style='margin-bottom:12.0pt;text-align:left'><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E'>In directory<o:p></o:p></span></p></td><td style='border-top:none;border-left:none;border-bottom:solid #DFE2E5 1.0pt;border-right:solid #DFE2E5 1.0pt;background:white;padding:4.5pt 9.75pt 4.5pt 9.75pt'><p class=MsoNormal align=left style='margin-bottom:12.0pt;text-align:left'><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E'>file:<o:p></o:p></span></p></td><td style='border-top:none;border-left:none;border-bottom:solid #DFE2E5 1.0pt;border-right:solid #DFE2E5 1.0pt;background:white;padding:4.5pt 9.75pt 4.5pt 9.75pt'><p class=MsoNormal align=left style='margin-bottom:12.0pt;text-align:left'><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E'>resource:<o:p></o:p></span></p></td><td style='border-top:none;border-left:none;border-bottom:solid #DFE2E5 1.0pt;border-right:solid #DFE2E5 1.0pt;background:white;padding:4.5pt 9.75pt 4.5pt 9.75pt'><p class=MsoNormal align=left style='margin-bottom:12.0pt;text-align:left'><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E'>resource:<o:p></o:p></span></p></td></tr><tr><td style='border:solid #DFE2E5 1.0pt;border-top:none;background:#F6F8FA;padding:4.5pt 9.75pt 4.5pt 9.75pt'><p class=MsoNormal align=left style='margin-bottom:12.0pt;text-align:left'><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E'>In Jar<o:p></o:p></span></p></td><td style='border-top:none;border-left:none;border-bottom:solid #DFE2E5 1.0pt;border-right:solid #DFE2E5 1.0pt;background:#F6F8FA;padding:4.5pt 9.75pt 4.5pt 9.75pt'><p class=MsoNormal align=left style='margin-bottom:12.0pt;text-align:left'><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E'>jar:file:<o:p></o:p></span></p></td><td style='border-top:none;border-left:none;border-bottom:solid #DFE2E5 1.0pt;border-right:solid #DFE2E5 1.0pt;background:#F6F8FA;padding:4.5pt 9.75pt 4.5pt 9.75pt'><p class=MsoNormal align=left style='margin-bottom:12.0pt;text-align:left'><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E'>resource:<o:p></o:p></span></p></td><td style='border-top:none;border-left:none;border-bottom:solid #DFE2E5 1.0pt;border-right:solid #DFE2E5 1.0pt;background:#F6F8FA;padding:4.5pt 9.75pt 4.5pt 9.75pt'><p class=MsoNormal align=left style='margin-bottom:12.0pt;text-align:left'><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E'>jar:file:<o:p></o:p></span></p></td></tr></table><p class=MsoNormal align=left style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:15.0pt;text-align:left;text-indent:21.0pt'><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E'>We developed this patch because we use the result of getResource as an index to search the containing jar file for other configuration files. It's too expensive to modify all of such usage.<o:p></o:p></span></p><ol start=2 type=1><li class=MsoNormal style='color:#24292E;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-align:left;mso-list:l0 level1 lfo2'><span lang=EN-US style='font-family:"Segoe UI",sans-serif'>Fixes a bug: no inner class is matched using resource config file generated by native agent.<br>The agent generates resource config file with resource's actual name, but that name is used as a regular expression during build time. So the &quot;$&quot; in inner class is taken as an end of line.<o:p></o:p></span></li></ol><p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-align:left'><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E'>Thank you <o:p></o:p></span></p><p class=MsoNormal align=left style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-align:left'><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E'>Ziyi Lin<o:p></o:p></span></p></div></body></html>