jdk/src/share/classes/java/io/File.java
changeset 20478 56135e8cbc46
parent 19029 30c64a024c86
child 21278 ef8a3a2a72f2
--- 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;
         }
     }