ok..looks fine.

Regards
Prasanta
On 8/30/2017 2:41 PM, Krishna Addepalli wrote:

Hi Prasanta,

Even in the previous case, it falls through and returns false. The same behavior is maintained with the current code as well.

Thanks,

Krishna

*From:*Prasanta Sadhukhan
*Sent:* Wednesday, August 30, 2017 2:00 PM
*To:* Krishna Addepalli <krishna.addepa...@oracle.com>
*Cc:* awt-dev@openjdk.java.net
*Subject:* Re: <AWT Dev> [10][JDK-8175015] FileSystemView.isDrive(File) memory leak on "C:\" file reference

One thing, if sf.isFileSystem() is true and sf.parent is NULL, then in previous case, it falls through but with this fix, it returns false. Can you clarify?

Regards
Prasanta

On 8/30/2017 11:42 AM, Sergey Bylokhov wrote:

    Ok, looks fine.

    -----krishna.addepa...@oracle.com <mailto:krishna.addepa...@oracle.com>  
wrote:

        Hi Sergey,

        I checked with Thread.MAX_PRIORITY - 1, and found that it still leads

        to OOM exception, although it takes longer to get to that condition.

        Thanks,

        Krishna

        -----Original Message-----

        From: Sergey Bylokhov

        Sent: Tuesday, August 29, 2017 6:19 AM

        To: Krishna Addepalli<krishna.addepa...@oracle.com>
        <mailto:krishna.addepa...@oracle.com>

        Cc:awt-dev@openjdk.java.net <mailto:awt-dev@openjdk.java.net>

        Subject: Re: <AWT Dev> [10][JDK-8175015] FileSystemView.isDrive(File)

        memory leak on "C:\" file reference

        Hi, Krishna.

        Did you check other priorities like Thread.MAX_PRIORITY-1/2/3?

        -----krishna.addepa...@oracle.com <mailto:krishna.addepa...@oracle.com> 
 wrote:

            Hi Sergey,

            The root cause for the OOM exception is due to mismatched thread

            priority. When folders are listed, each folder/file is associated

        with

            a COM object, that is wrapped by the Java ShellFolder object. Now,

            when the ShellFolder object needs to be deleted, the underlying COM

            object should be released in ComThread, whose priority is normal.

            Whereas, the java2D.Disposer thread runs at highest priority, but it

            is unable to clean up the piled up objects, which eventually leads

        to

            this exception.

            I have added a fix for this as well, and created a new webrev as

            below:

            http://cr.openjdk.java.net/~pkbalakr/Krishna/8175015/webrev01/
            <http://cr.openjdk.java.net/%7Epkbalakr/Krishna/8175015/webrev01/>

            Thanks,

            Krishna

            -----Original Message-----

            From: Sergey Bylokhov

            Sent: Wednesday, August 9, 2017 5:16 AM

            To: Krishna Addepalli<krishna.addepa...@oracle.com>
            <mailto:krishna.addepa...@oracle.com>;

            awt-dev@openjdk.java.net <mailto:awt-dev@openjdk.java.net>

            Subject: Re: <AWT Dev> [10][JDK-8175015]

        FileSystemView.isDrive(File)

            memory leak on "C:\" file reference

            Hi, Krishna.> 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.

            If for each query we list the files in the drive and *throws* all of

            them away, then why(and where) we have a memory leak and as a result

            OOM.

            --

            Best regards, Sergey.


Reply via email to