Ok, looks fine.

----- 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>
> Cc: 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 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 <krishna.addepa...@oracle.com>; 
> > 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