--- a/jdk/src/share/classes/java/io/File.java Fri Sep 27 13:30:35 2013 -0700
+++ b/jdk/src/share/classes/java/io/File.java Fri Sep 27 17:09:25 2013 -0700
@@ -1908,10 +1908,18 @@
} else {
n = Math.abs(n);
}
+
+ // Use only the file name from the supplied prefix
+ prefix = (new File(prefix)).getName();
+
String name = prefix + Long.toString(n) + suffix;
File f = new File(dir, name);
- if (!name.equals(f.getName()) || f.isInvalid())
- throw new IOException("Unable to create temporary file");
+ if (!name.equals(f.getName()) || f.isInvalid()) {
+ if (System.getSecurityManager() != null)
+ throw new IOException("Unable to create temporary file");
+ else
+ throw new IOException("Unable to create temporary file, " + f);
+ }
return f;
}
}