7143606: File.createTempFile should be improved for temporary files created by the platform.
Reviewed-by: sherman
--- a/jdk/src/macosx/classes/apple/applescript/AppleScriptEngine.java Tue Apr 10 10:44:46 2012 -0700
+++ b/jdk/src/macosx/classes/apple/applescript/AppleScriptEngine.java Wed Apr 11 17:47:56 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,7 @@
package apple.applescript;
import java.io.*;
+import java.nio.file.Files;
import java.util.*;
import java.util.Map.Entry;
@@ -297,7 +298,7 @@
File tmpfile;
FileWriter tmpwrite;
try {
- tmpfile = File.createTempFile("AppleScriptEngine.", ".scpt");
+ tmpfile = Files.createTempFile("AppleScriptEngine.", ".scpt").toFile();
tmpwrite = new FileWriter(tmpfile);
// read in our input and write directly to tmpfile
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java Tue Apr 10 10:44:46 2012 -0700
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java Wed Apr 11 17:47:56 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -35,6 +35,7 @@
import java.io.OutputStream;
import java.io.PrintStream;
import java.text.MessageFormat;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -385,9 +386,7 @@
if ( base.getParentFile() == null && suffix.equals(".bak"))
where = new File(".").getAbsoluteFile();
-
- File f = File.createTempFile(prefix, suffix, where);
- return f;
+ return Files.createTempFile(where.toPath(), prefix, suffix).toFile();
}
static private
--- a/jdk/src/share/classes/java/awt/Font.java Tue Apr 10 10:44:46 2012 -0700
+++ b/jdk/src/share/classes/java/awt/Font.java Wed Apr 11 17:47:56 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -36,6 +36,7 @@
import java.awt.peer.FontPeer;
import java.io.*;
import java.lang.ref.SoftReference;
+import java.nio.file.Files;
import java.security.AccessController;
import java.security.PrivilegedExceptionAction;
import java.text.AttributedCharacterIterator.Attribute;
@@ -831,7 +832,7 @@
File f = null;
boolean hasPerm = false;
try {
- f = File.createTempFile("+~JT", ".tmp", null);
+ f = Files.createTempFile("+~JT", ".tmp").toFile();
f.delete();
f = null;
hasPerm = true;
@@ -881,7 +882,7 @@
final File tFile = AccessController.doPrivileged(
new PrivilegedExceptionAction<File>() {
public File run() throws IOException {
- return File.createTempFile("+~JF", ".tmp", null);
+ return Files.createTempFile("+~JF", ".tmp").toFile();
}
}
);
--- a/jdk/src/share/classes/javax/imageio/stream/FileCacheImageInputStream.java Tue Apr 10 10:44:46 2012 -0700
+++ b/jdk/src/share/classes/javax/imageio/stream/FileCacheImageInputStream.java Wed Apr 11 17:47:56 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@
import java.io.InputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
+import java.nio.file.Files;
import com.sun.imageio.stream.StreamCloser;
import com.sun.imageio.stream.StreamFinalizer;
import sun.java2d.Disposer;
@@ -97,8 +98,11 @@
throw new IllegalArgumentException("Not a directory!");
}
this.stream = stream;
- this.cacheFile =
- File.createTempFile("imageio", ".tmp", cacheDir);
+ if (cacheDir == null)
+ this.cacheFile = Files.createTempFile("imageio", ".tmp").toFile();
+ else
+ this.cacheFile = Files.createTempFile(cacheDir.toPath(), "imageio", ".tmp")
+ .toFile();
this.cache = new RandomAccessFile(cacheFile, "rw");
this.closeAction = StreamCloser.createCloseAction(this);
--- a/jdk/src/share/classes/javax/imageio/stream/FileCacheImageOutputStream.java Tue Apr 10 10:44:46 2012 -0700
+++ b/jdk/src/share/classes/javax/imageio/stream/FileCacheImageOutputStream.java Wed Apr 11 17:47:56 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@
import java.io.IOException;
import java.io.OutputStream;
import java.io.RandomAccessFile;
+import java.nio.file.Files;
import com.sun.imageio.stream.StreamCloser;
/**
@@ -83,8 +84,11 @@
throw new IllegalArgumentException("Not a directory!");
}
this.stream = stream;
- this.cacheFile =
- File.createTempFile("imageio", ".tmp", cacheDir);
+ if (cacheDir == null)
+ this.cacheFile = Files.createTempFile("imageio", ".tmp").toFile();
+ else
+ this.cacheFile = Files.createTempFile(cacheDir.toPath(), "imageio", ".tmp")
+ .toFile();
this.cache = new RandomAccessFile(cacheFile, "rw");
this.closeAction = StreamCloser.createCloseAction(this);
--- a/jdk/src/share/classes/javax/management/loading/MLet.java Tue Apr 10 10:44:46 2012 -0700
+++ b/jdk/src/share/classes/javax/management/loading/MLet.java Wed Apr 11 17:47:56 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,6 +44,7 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLStreamHandlerFactory;
+import java.nio.file.Files;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
@@ -1160,8 +1161,9 @@
try {
File directory = new File(libraryDirectory);
directory.mkdirs();
- File file = File.createTempFile(libname + ".", null,
- directory);
+ File file = Files.createTempFile(directory.toPath(),
+ libname + ".", null)
+ .toFile();
file.deleteOnExit();
FileOutputStream fileOutput = new FileOutputStream(file);
try {
--- a/jdk/src/share/classes/sun/print/PSPrinterJob.java Tue Apr 10 10:44:46 2012 -0700
+++ b/jdk/src/share/classes/sun/print/PSPrinterJob.java Wed Apr 11 17:47:56 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -97,6 +97,7 @@
import java.nio.charset.*;
import java.nio.CharBuffer;
import java.nio.ByteBuffer;
+import java.nio.file.Files;
//REMIND: Remove use of this class when IPPPrintService is moved to share directory.
import java.lang.reflect.Method;
@@ -659,7 +660,7 @@
* is not removed for some reason, request that it is
* removed when the VM exits.
*/
- spoolFile = File.createTempFile("javaprint", ".ps", null);
+ spoolFile = Files.createTempFile("javaprint", ".ps").toFile();
spoolFile.deleteOnExit();
result = new FileOutputStream(spoolFile);
--- a/jdk/src/share/classes/sun/rmi/server/Activation.java Tue Apr 10 10:44:46 2012 -0700
+++ b/jdk/src/share/classes/sun/rmi/server/Activation.java Wed Apr 11 17:47:56 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -43,6 +43,7 @@
import java.net.Socket;
import java.net.SocketAddress;
import java.net.SocketException;
+import java.nio.file.Files;
import java.nio.channels.Channel;
import java.nio.channels.ServerSocketChannel;
import java.rmi.AccessException;
@@ -1940,7 +1941,7 @@
new PrivilegedExceptionAction<Void>() {
public Void run() throws IOException {
File file =
- File.createTempFile("rmid-err", null, null);
+ Files.createTempFile("rmid-err", null).toFile();
PrintStream errStream =
new PrintStream(new FileOutputStream(file));
System.setErr(errStream);
--- a/jdk/src/share/classes/sun/tools/jar/Main.java Tue Apr 10 10:44:46 2012 -0700
+++ b/jdk/src/share/classes/sun/tools/jar/Main.java Wed Apr 11 17:47:56 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -137,7 +137,7 @@
File dir = file.getParentFile();
if (dir == null)
dir = new File(".");
- return File.createTempFile("jartmp", null, dir);
+ return Files.createTempFile(dir.toPath(), "jartmp", null).toFile();
}
private boolean ok;
--- a/jdk/src/share/classes/sun/tools/native2ascii/Main.java Tue Apr 10 10:44:46 2012 -0700
+++ b/jdk/src/share/classes/sun/tools/native2ascii/Main.java Wed Apr 11 17:47:56 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -71,6 +71,7 @@
import java.nio.charset.CharsetEncoder;
import java.nio.charset.Charset;
import java.nio.charset.IllegalCharsetNameException;
+import java.nio.file.Files;
import java.io.UnsupportedEncodingException;
import java.nio.charset.UnsupportedCharsetException;
import sun.tools.native2ascii.A2NFilter;
@@ -240,9 +241,7 @@
if (tempDir == null)
tempDir = new File(System.getProperty("user.dir"));
- tempFile = File.createTempFile("_N2A",
- ".TMP",
- tempDir);
+ tempFile = Files.createTempFile(tempDir.toPath(), "_N2A", ".TMP").toFile();
tempFile.deleteOnExit();
try {
@@ -292,9 +291,7 @@
File tempDir = f.getParentFile();
if (tempDir == null)
tempDir = new File(System.getProperty("user.dir"));
- tempFile = File.createTempFile("_N2A",
- ".TMP",
- tempDir);
+ tempFile = Files.createTempFile(tempDir.toPath(), "_N2A", ".TMP").toFile();
tempFile.deleteOnExit();
try {
--- a/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java Tue Apr 10 10:44:46 2012 -0700
+++ b/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java Wed Apr 11 17:47:56 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -33,6 +33,7 @@
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.nio.charset.Charset;
+import java.nio.file.Files;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Properties;
@@ -387,7 +388,7 @@
File fcInfoFile = getFcInfoFile();
File dir = fcInfoFile.getParentFile();
dir.mkdirs();
- File tempFile = File.createTempFile("fcinfo", null, dir);
+ File tempFile = Files.createTempFile(dir.toPath(), "fcinfo", null).toFile();
FileOutputStream fos = new FileOutputStream(tempFile);
props.store(fos,
"JDK Font Configuration Generated File: *Do Not Edit*");
--- a/jdk/src/solaris/classes/sun/print/UnixPrintJob.java Tue Apr 10 10:44:46 2012 -0700
+++ b/jdk/src/solaris/classes/sun/print/UnixPrintJob.java Wed Apr 11 17:47:56 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -42,6 +42,7 @@
import java.io.Reader;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
+import java.nio.file.Files;
import java.util.Vector;
import javax.print.CancelablePrintJob;
@@ -938,7 +939,7 @@
* is not removed for some reason, request that it is
* removed when the VM exits.
*/
- spoolFile = File.createTempFile("javaprint", ".ps", null);
+ spoolFile = Files.createTempFile("javaprint", ".ps").toFile();
spoolFile.deleteOnExit();
}
result = new FileOutputStream(spoolFile);
--- a/jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java Tue Apr 10 10:44:46 2012 -0700
+++ b/jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java Wed Apr 11 17:47:56 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -51,6 +51,7 @@
import java.io.File;
import java.io.FileReader;
import java.net.URL;
+import java.nio.file.Files;
/*
* Remind: This class uses solaris commands. We also need a linux
@@ -714,7 +715,7 @@
Process proc;
BufferedReader bufferedReader = null;
- File f = File.createTempFile("prn","xc");
+ File f = Files.createTempFile("prn","xc").toFile();
cmd[2] = cmd[2]+">"+f.getAbsolutePath();
proc = Runtime.getRuntime().exec(cmd);