<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>+1<br>
</p>
Regards<br>
Prasanta<br>
<div class="moz-cite-prefix">On 12/13/2017 2:12 PM, Krishna
Addepalli wrote:<br>
</div>
<blockquote type="cite"
cite="mid:19864cc6-d723-4b5d-902f-4623720d5d71@default">
<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:"Times New Roman \,serif";
panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 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
{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;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Consolas;
color:black;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:black;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-style-priority:99;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:12.0pt;
font-family:"Times New Roman",serif;
color:black;}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;
color:black;}
span.EmailStyle22
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.EmailStyle23
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle24
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle25
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle26
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle27
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle28
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle29
{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:931817106;
mso-list-type:hybrid;
mso-list-template-ids:1614576216 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l0:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l0:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
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]-->
<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">Here is the
webrev with suggested changes: </span><a
href="http://cr.openjdk.java.net/%7Ekaddepalli/8190281/webrev05/"
moz-do-not-send="true">http://cr.openjdk.java.net/~kaddepalli/8190281/webrev05/</a><span
style="color:#1F497D"><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">Krishna</span><span
style="color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"
moz-do-not-send="true"><span style="color:#1F497D"><o:p> </o:p></span></a></p>
<span style="mso-bookmark:_MailEndCompose"></span>
<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> Wednesday, December 13, 2017 10:42 AM<br>
<b>To:</b> Krishna Addepalli
<a class="moz-txt-link-rfc2396E" href="mailto:krishna.addepalli@oracle.com"><krishna.addepalli@oracle.com></a>;
<a class="moz-txt-link-abbreviated" href="mailto:swing-dev@openjdk.java.net">swing-dev@openjdk.java.net</a><br>
<b>Subject:</b> Re: <Swing Dev> [10][JDK-8190281]
Code cleanup in
src\java.desktop\share\classes\javax\swing\tree\VariableHeightLayoutCache.java<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p>But there is no compulsion that we need to store
getRowCount() in "max". You can store in some other variable
and then "max" point to that in the loop.<span
style="font-size:12.0pt"><o:p></o:p></span></p>
<p class="MsoNormal">Regards<br>
Prasanta<o:p></o:p></p>
<div>
<p class="MsoNormal">On 12/12/2017 9:51 PM, Krishna Addepalli
wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:#1F497D">Hi Prasanta,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">The
getRowCount() calls l955,956 cannot be removed, since max
variable is getting modified in the while loop at l945.
There is no guarantee that max will still hold the
getRowCount() after the loop exits. So, those calls cannot
be removed.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Krishna</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></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, December 12, 2017 8:08 PM<br>
<b>To:</b> Krishna Addepalli <a
href="mailto:krishna.addepalli@oracle.com"
moz-do-not-send="true"><krishna.addepalli@oracle.com></a>;
<a href="mailto:swing-dev@openjdk.java.net"
moz-do-not-send="true">swing-dev@openjdk.java.net</a><br>
<b>Subject:</b> Re: <Swing Dev>
[10][JDK-8190281] Code cleanup in
src\java.desktop\share\classes\javax\swing\tree\VariableHeightLayoutCache.java</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p>As told, you overlooked l955,956<o:p></o:p></p>
<p class="MsoNormal">Regards<br>
Prasanta<o:p></o:p></p>
<div>
<p class="MsoNormal">On 12/12/2017 7:37 PM, Krishna
Addepalli wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:#1F497D">Oops! My
bad. Created a new webrev here with the correction: </span><a
href="http://cr.openjdk.java.net/%7Ekaddepalli/8190281/webrev04/"
moz-do-not-send="true">http://cr.openjdk.java.net/~kaddepalli/8190281/webrev04/</a><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></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, December 12, 2017 7:05 PM<br>
<b>To:</b> Krishna Addepalli <a
href="mailto:krishna.addepalli@oracle.com"
moz-do-not-send="true"><krishna.addepalli@oracle.com></a>;
<a href="mailto:swing-dev@openjdk.java.net"
moz-do-not-send="true">swing-dev@openjdk.java.net</a><br>
<b>Subject:</b> Re: <Swing Dev>
[10][JDK-8190281] Code cleanup in
src\java.desktop\share\classes\javax\swing\tree\VariableHeightLayoutCache.java</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p>You missed using the variable at l933<o:p></o:p></p>
<p class="MsoNormal">Regards<br>
Prasanta<o:p></o:p></p>
<div>
<p class="MsoNormal">On 12/12/2017 5:21 PM, Krishna
Addepalli wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:#1F497D">Hi
Prasanta,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Did the
change for caching the result of calling
“getRowCount()” into a variable, as pointed out by
you, and here is the new webrev: </span><a
href="http://cr.openjdk.java.net/%7Ekaddepalli/8190281/webrev03/"
moz-do-not-send="true">http://cr.openjdk.java.net/~kaddepalli/8190281/webrev03/</a><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Krishna</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></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> Monday, December 11, 2017 7:24 PM<br>
<b>To:</b> Krishna Addepalli <a
href="mailto:krishna.addepalli@oracle.com"
moz-do-not-send="true"><krishna.addepalli@oracle.com></a>;
<a href="mailto:swing-dev@openjdk.java.net"
moz-do-not-send="true">swing-dev@openjdk.java.net</a><br>
<b>Subject:</b> Re: <Swing Dev>
[10][JDK-8190281] Code cleanup in
src\java.desktop\share\classes\javax\swing\tree\VariableHeightLayoutCache.java</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p><span style="font-size:12.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<div>
<p class="MsoNormal">On 12/11/2017 4:16 PM, Krishna
Addepalli wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:#1F497D">Hi
Prasanta,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Yes,
you are right, but as I mentioned earlier, that
would need to make one variable declaration for
caching before trivial reject case, which I wanted
to avoid.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">As for
the body of getRowCount() it is just returning
“visibleNodes.size()”, which shouldn’t be a
(performance)problem if called 2 times as I
understand.</span><o:p></o:p></p>
</blockquote>
<p class="MsoNormal"><span
style="font-size:12.0pt;font-family:"Times New
Roman ,serif",serif">But, the whole premise of
changing getRowCount() <=0 was that it can be
overridden and return -ve. Left to present
implementation, we would not have needed "less than"
check. <br>
So, if we are changing one case because of the above
reason, then we cannot forego the 2nd case's problem,
as it can have any implementation.<br>
<br>
Regards<br>
Prasanta<br>
<br>
<br>
<br>
<br>
</span><o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Krishna</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></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> Monday, December 11, 2017 4:02 PM<br>
<b>To:</b> Krishna Addepalli <a
href="mailto:krishna.addepalli@oracle.com"
moz-do-not-send="true"><krishna.addepalli@oracle.com></a>;
<a href="mailto:swing-dev@openjdk.java.net"
moz-do-not-send="true">swing-dev@openjdk.java.net</a><br>
<b>Subject:</b> Re: <Swing Dev>
[10][JDK-8190281] Code cleanup in
src\java.desktop\share\classes\javax\swing\tree\VariableHeightLayoutCache.java</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p>Hi Krishna,<o:p></o:p></p>
<p class="MsoNormal">My point was we can call
getRowCount() once at first and store the result and
use it subsequently. There was no need to call it 2-3
times.<br>
<br>
Regards<br>
Prasanta<o:p></o:p></p>
<div>
<p class="MsoNormal">On 12/11/2017 3:01 PM, Krishna
Addepalli wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:#1F497D">Hi
Prasanta,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks
for pointing out the “getRowCount()==0” check.
Modified it to “getRowCount() <= 0” in the new
webrev: </span><a
href="http://cr.openjdk.java.net/%7Ekaddepalli/8190281/webrev02/"
moz-do-not-send="true">http://cr.openjdk.java.net/~kaddepalli/8190281/webrev02/</a><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">As
for calling the method twice, you are right that
we don’t need to call it twice, but in the
interest of having trivial reject case first, and
then start the variable declarations, had to let
be there to be called twice. Precisely for the
reason you stated, it shouldn’t matter if we
called it twice.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Krishna</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></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> Saturday, December 9, 2017 7:54
PM<br>
<b>To:</b> Krishna Addepalli <a
href="mailto:krishna.addepalli@oracle.com"
moz-do-not-send="true"><krishna.addepalli@oracle.com></a>;
<a href="mailto:swing-dev@openjdk.java.net"
moz-do-not-send="true">swing-dev@openjdk.java.net</a><br>
<b>Subject:</b> Re: <Swing Dev>
[10][JDK-8190281] Code cleanup in
src\java.desktop\share\classes\javax\swing\tree\VariableHeightLayoutCache.java</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p>Hi Krishna,<o:p></o:p></p>
<p class="MsoNormal">This seems good to me except one
thing. You are checking getRowCount() == 0 but there
is a chance of test extending
VariableHeightLayoutCache and overriding getRowCount
to return -ve also as it is an int. In that case, I
guess this function will not return -1 which spec
mandates [If there are no rows, -1 is returned] so I
guess we should check for <=0. <br>
Also, there is no need of calling getRowCount()
twice as it will not change between 929, 936.<br>
<br>
Regards<br>
Prasanta<o:p></o:p></p>
<div>
<p class="MsoNormal">On 12/7/2017 4:41 PM, Krishna
Addepalli wrote:<o:p></o:p></p>
</div>
<blockquote
style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:#1F497D">Hi
Sergey,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Per
our conversation, I have done the following
changes:</span><o:p></o:p></p>
<p class="MsoListParagraph"
style="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]--><span
style="color:#1F497D">Found that the .class size
increases by 1kb when streams are used, so
reverted the changes related to it.</span><o:p></o:p></p>
<p class="MsoListParagraph"
style="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]--><span
style="color:#1F497D">Moved the “++nextIndex”
into the conditional, so that there is no
logical change.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Here
is the updated webrev: </span><a
href="http://cr.openjdk.java.net/%7Ekaddepalli/8190281/webrev01/"
moz-do-not-send="true">http://cr.openjdk.java.net/~kaddepalli/8190281/webrev01/</a><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Krishna</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1
1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Krishna
Addepalli <br>
<b>Sent:</b> Wednesday, December 6, 2017 2:43
PM<br>
<b>To:</b> <a
href="mailto:swing-dev@openjdk.java.net"
moz-do-not-send="true">swing-dev@openjdk.java.net</a><br>
<b>Subject:</b> [10][JDK-8190281] Code cleanup
in
src\java.desktop\share\classes\javax\swing\tree\VariableHeightLayoutCache.java<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Hi All,<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Please review the fix for bug:<o:p></o:p></p>
<p class="MsoNormal">Bug: JDK-8190281 <a
href="https://bugs.openjdk.java.net/browse/JDK-8190281"
moz-do-not-send="true">https://bugs.openjdk.java.net/browse/JDK-8190281</a><o:p></o:p></p>
<p class="MsoNormal">JDK 10 Webrev: <a
href="http://cr.openjdk.java.net/%7Ekaddepalli/8190281/webrev00/"
moz-do-not-send="true">http://cr.openjdk.java.net/~kaddepalli/8190281/webrev00/</a><o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">This bug was created while root
causing JDK-8187936, and the following refactoring
points have been addressed:<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">1. Line 927: Uninitialized
variables, checking for trivial reject case
multiple times. <br>
2. Line 999: Traditional code written to find
maximum size of components, which can be done
without any local variables and explicit looping
by replacing with streams. <br>
3. Line 1365: Code repetition for differenct
conditions, which can be ored together to reduce
the repetition. <br>
4. Line 1482: A large code block gets repeated
only because of different values need to be passed
in one line. This can be moved to a variable
initialization, and the repeating code blocks can
be reduced to one. <br>
5. Line 1505: Variable initialization can be
simplified by combining different conditions. <br>
6. Line 1540: An explicit loop to apply a function
over a collection, can be achieved in one line by
a forEach construct. – This is producing some
visual artifacts, so ignored.<br>
7. Line 1747: Combine all the trivial reject cases
into one condition, and also, a potential bug
which increments the "nextIndex" value beyond the
length of the containing elements. The increment
should happen only if the trivial reject case
fails.<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal">Krishna<o:p></o:p></p>
</blockquote>
<p class="MsoNormal"><span
style="font-size:12.0pt;font-family:"Times
New Roman ,serif",serif"> </span><o:p></o:p></p>
</blockquote>
<p class="MsoNormal"><span
style="font-size:12.0pt;font-family:"Times New
Roman",serif"> </span><o:p></o:p></p>
</blockquote>
<p class="MsoNormal"><span
style="font-size:12.0pt;font-family:"Times New
Roman ,serif",serif"> </span><o:p></o:p></p>
</blockquote>
<p class="MsoNormal"><span
style="font-size:12.0pt;font-family:"Times New
Roman",serif"> </span><o:p></o:p></p>
</blockquote>
<p class="MsoNormal"><span
style="font-size:12.0pt;font-family:"Times New Roman
,serif",serif"> </span><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>
</blockquote>
<br>
</body>
</html>