jdk6: LazyInitialization in java.io.File

Tom Hawtin Thomas.Hawtin at Sun.COM
Mon Jan 18 20:07:27 UTC 2010

Nico R. wrote:

> In java.io.File.createTempFile(String,String,File) (see
> <URL:http://hg.openjdk.java.net/jdk6/jdk6/jdk/file/ea5036d799e5/src/share/classes/java/io/File.java>),
> line 1797 says:
>         String tmpDir = LazyInitialization.temporaryDirectory();
> LazyInitialization, line 1683, has
>     static final String temporaryDirectory = temporaryDirectory();
> Shouldn’t the createTempFile method read from the /field/ in
> LazyInitialization instead of calling the /method/? If I got this
> correctly, the brackets in line 1797 should be removed.

Well spotted. Prior to the CR 6721753[1] fix File.getTempDir hand-coded 
lazy initialisation of tmpdir. It shouldn't make an enormous amount of 
difference: updates to the system property currently change the temp 
directory used; the performance degredation should be trivial.

I guess Alan will sort it.


[1] http://sunsolve.sun.com/search/document.do?assetkey=1-66-244986-1

More information about the core-libs-dev mailing list