<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;}
@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;}
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;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:Consolas;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></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=EN-US link="#0563C1" vlink="#954F72"><div class=WordSection1><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><o:p> </o:p></p><p class=MsoNormal>Bug: JDK- 8175015 <a href="https://bugs.openjdk.java.net/browse/JDK-8175015">https://bugs.openjdk.java.net/browse/JDK-8175015</a><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>JDK 10 Webrev : <a href="http://cr.openjdk.java.net/~pkbalakr/Krishna/8175015/webrev00/">http://cr.openjdk.java.net/~pkbalakr/Krishna/8175015/webrev00/</a><b><o:p></o:p></b></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Summary:<o:p></o:p></p><p class=MsoNormal>The bug reports about memory leak by repeatedly querying FileSystemView, if “C:\” is a root drive.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The problem is internally, Win32ShellFolderManager2.java, the function “isFileSystemRoot” is called, which lists the contents of all the root drives, in addition to including them. It also includes the hidden files. For each file present, it is wrapped with a “Win32ShellFolder2” object. So, for each query, it will list the files in the drives, and throws them away, which is leading to both memory consumption as well as slow performance. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The fix is to use “Win32ShellFolder2.<i>listRoots</i>()”, which is both fast and consumes less memory, since the number of drives on most systems will not exceed 5/10, whereas there can be a large number of files in the root directory. <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></div></body></html>