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.
 
----- HYPERLINK 
"mailto:krishna.addepa...@oracle.com"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 HYPERLINK 
"mailto:krishna.addepa...@oracle.com";<krishna.addepa...@oracle.com>
Cc: HYPERLINK "mailto:awt-dev@openjdk.java.net"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?  
 
----- HYPERLINK 
"mailto:krishna.addepa...@oracle.com"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/
 
Thanks,
Krishna
 
-----Original Message-----
From: Sergey Bylokhov
Sent: Wednesday, August 9, 2017 5:16 AM
To: Krishna Addepalli HYPERLINK 
"mailto:krishna.addepa...@oracle.com";<krishna.addepa...@oracle.com>; 
HYPERLINK "mailto:awt-dev@openjdk.java.net"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