<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=us-ascii"><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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
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.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri",sans-serif;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1870987899;
        mso-list-type:hybrid;
        mso-list-template-ids:775459510 859180862 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:47.25pt;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:83.25pt;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:119.25pt;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:155.25pt;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:191.25pt;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:227.25pt;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:263.25pt;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:299.25pt;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:335.25pt;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></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 bgcolor=white lang=EN-US link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal><span style='color:#1F497D'>Hi Prasanta,<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Thanks for your review.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Now I am forcing all testcases to run even if any initial testcase fails.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>I have divided all 4 test cases into different functions and I am throwing proper RuntimeException based on what test case is failing.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Please find updated webrev for review :<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><a href="http://cr.openjdk.java.net/~jdv/8152561/webrev.01/">http://cr.openjdk.java.net/~jdv/8152561/webrev.01/</a> <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Thanks,<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Jay<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='color:windowtext'>From:</span></b><span style='color:windowtext'> Prasanta Sadhukhan <br><b>Sent:</b> Tuesday, January 17, 2017 12:48 PM<br><b>To:</b> Jayathirth D V; Philip Race; Brian Burkhalter; 2d-dev<br><b>Subject:</b> Re: [OpenJDK 2D-Dev] [9] RFR JDK-8152561: Is it allowed to have zero value for count in TIFFField.createArrayForType() for the rationals<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p>Looks good to me. <span style='font-size:12.0pt'><o:p></o:p></span></p><p>Only thing is that in the test, if one test fails it will not proceed to the next test. I think we should test all combinations and fail at last with the informations of all failed combinations.<o:p></o:p></p><p class=MsoNormal>Regards<br>Prasanta<o:p></o:p></p><div><p class=MsoNormal>On 1/11/2017 11:19 PM, Jayathirth D V wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal>Hello All,<o:p></o:p></p><p class=MsoPlainText> <o:p></o:p></p><p class=MsoPlainText>Please review the following  fix in JDK9:<o:p></o:p></p><p class=MsoPlainText> <o:p></o:p></p><p class=MsoPlainText>Bug :              <a href="https://bugs.openjdk.java.net/browse/JDK-8152561">https://bugs.openjdk.java.net/browse/JDK-8152561</a> <o:p></o:p></p><p class=MsoPlainText>Webrev :     <a href="http://cr.openjdk.java.net/%7Ejdv/8152561/webrev.00/">http://cr.openjdk.java.net/~jdv/8152561/webrev.00/</a> <o:p></o:p></p><p class=MsoPlainText> <o:p></o:p></p><p class=MsoPlainText>Issue : There is difference in how we interpret “count” variable passed to TIFFField.createArrayForType(int dataType, int count) and constructor TIFFField(TIFFTag tag, int type, int count, Object data).<o:p></o:p></p><p class=MsoPlainText> <o:p></o:p></p><p class=MsoPlainText>Root cause : There are certain limitation on what the “count” value should be based on dataType of TIFFTag. We check these conditions in TIFFField(TIFFTag tag, int type, int count, Object data) but we don’t verify all the conditions in TIFFField.createArrayForType(int dataType, int count).<o:p></o:p></p><p class=MsoPlainText> <o:p></o:p></p><p class=MsoPlainText>Solution : Verify all the required conditions that has to be applied on “count” variable based on datatype of TIFFTag in TIFFField.createArrayForType(int dataType, int count). Also I have made specification changes for TIFFField(TIFFTag tag, int type, int count) which will elaborate on what exceptions will be thrown if we don’t follow same “count” and “dataType” relationship.<o:p></o:p></p><p class=MsoPlainText> <o:p></o:p></p><p class=MsoPlainText> <o:p></o:p></p><p class=MsoPlainText>Note : Because of tighter conditions in TIFFField.createArrayForType(int dataType, int count) under the proposed fix 2 JCK tests are failing.<o:p></o:p></p><p class=MsoPlainText> <o:p></o:p></p><p class=MsoPlainText style='margin-left:47.25pt;text-indent:-.25in;mso-list:l0 level1 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>1)<span style='font:7.0pt "Times New Roman"'>      </span></span><![endif]><u>api/javax_imageio/plugins/tiff/TIFFField/index.html#TIFFFieldTest : <i>CreateArrayForType_ValidScenario</i></u><o:p></o:p></p><p class=MsoPlainText style='margin-left:47.25pt'>This is failing because they are passing count values of 0 for TIFFTag.TIFF_RATIONAL & TIFFTag.TIFF_SRATIONAL which will throw IAE. Also it will throw IAE if we pass count value 0 or 2 for TIFFTag.TIFF_IFD_POINTER.<o:p></o:p></p><p class=MsoPlainText> <o:p></o:p></p><p class=MsoPlainText style='margin-left:47.25pt;text-indent:-.25in;mso-list:l0 level1 lfo2'><![if !supportLists]><span style='mso-list:Ignore'>2)<span style='font:7.0pt "Times New Roman"'>      </span></span><![endif]><u>api/javax_imageio/plugins/tiff/TIFFField/index.html#ConstructorTests : <i>Constructor02_TagIsNull_ThrowNPE</i></u><o:p></o:p></p><p class=MsoPlainText style='margin-left:47.25pt'>I think this scenario expects constructor to throw NPE when “tag” is null. But before it checks for “tag” value in TIFFField(TIFFTag tag, int type, int count, Object data) we call TIFFField.createArrayForType(int dataType, int count) to create needed data. So like mentioned in previous JCK test which is failing, we will be throwing IAE in all cases where as test expects us to throw NPE.<o:p></o:p></p><p class=MsoPlainText> <o:p></o:p></p><p class=MsoPlainText> <o:p></o:p></p><p class=MsoPlainText>Thanks,<o:p></o:p></p><p class=MsoPlainText>Jay<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p></blockquote><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman",serif'><o:p> </o:p></span></p></div></body></html>