Hello,

 

Please review the following fix for Jdk9:
 
Bug: https://bugs.openjdk.java.net/browse/JDK-8030099

Webrev: http://cr.openjdk.java.net/~rchamyal/8030099/webrev.00/

Issue: The memory usage of java process goes on increasing if we call 
ShellFolder:listFiles API

aggressively on some folder with large number of files/folders.

 
Cause: Win32ShellFolder class registers its instances and native data with 
sun.java2d.Disposer class for later disposal.
Win32ShellFolder instances are getting registered as PhantomReferences with 
Disposer and are not getting cleared immediately.
This leads to increase of memory usage by java process.
 
Fix: Instead of registering the complete Win32ShellFolder object reference with 
disposer we are now adding only a sentinel object and also using 
sun.java2d.Disposer :: addObjectRecord API which adds the references as 
WeakReferences.
 
Regards,
Rajeev Chamyal

 

Reply via email to