Hi Weijun, The original init() methods invoked by FilePermission constructors and readObject() for deserialization. The constructors will be invoked only once for each FilePermission Object and the ObjectInputStream will create new FilePermission for each deserialization so the old init() is fine without synchronization. This patch however requires there is only one thread invokes the get_dir_rec() method to construct the cpath so it's true this method need syncrhonization. I will update the patch later accordingly.
Thanks a lot! 2014-12-01 16:36 GMT+08:00 Wang Weijun <weijun.w...@oracle.com>: > Do you need some kind of synchronization on the get_dir_rec() method? > > --Max > > > On Dec 1, 2014, at 16:06, deven you <youd...@linux.vnet.ibm.com> wrote: > > > > Hi All, > > File.getCanonicalPath() is a very time-consuming method, we observed > > significant performance degradation from some application's startup stage > > with java.io.FilePermission. However, lazying load the calls to > > getCanonicalPath() from java.ioFilePermission is straightforward and > solve > > this problem effectively. Openjdk bug[1] tracks this bug and here is the > > patch [2]. Could anyone take a look? > > > > [1] https://bugs.openjdk.java.net/browse/JDK-8066211 > > [2] http://cr.openjdk.java.net/~youdwei/ojdk-912/webrev.00/ > >