RFR: JDK-8013827 and JDK-8011950, , java.io.File.createTempFile enters infinite loop when passed invalid data (original) (raw)
Dan Xu dan.xu at oracle.com
Fri May 31 18:15:51 UTC 2013
- Previous message: RFR: JDK-8013827 and JDK-8011950, , java.io.File.createTempFile enters infinite loop when passed invalid data
- Next message: hg: jdk8/tl/jdk: 6251788: (rb) PropertyResourceBundle doesn't document exceptions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 05/29/2013 04:54 AM, Alan Bateman wrote:
On 28/05/2013 19:39, Dan Xu wrote:
Hi All,
When File.createTempFile() is called with some special parameters, it runs into infiniteloop and hangs. It is because it does not always mean a file exists when the method, createFileExclusively(), returns false. This fix is going to solve such issues reported in JDK-8013827 and JDK-8011950.And I also added some testcases to verify it. webrev: http://cr.openjdk.java.net/~dxu/8013827/webrev.00/ bug: http://bugs.sun.com/viewbug.do?bugid=8011950 -Dan Thanks for taking this one. The changes mean that IAE is now thrown for cases where it wasn't thrown previously and I'm wondering if this is worth doing. It might be simpler to just throw IOException on the grounds that creating the file will fail. One other thing to consider is that "" is a valid name of a file on some platforms. I suspect you'll need to delegate to the FileSystem to check the suffix/prefix. Alternatively in TempDirectory.generateFile you could create a File from prefix/n/suffix and call getName to check that its matches. If not then throw an exception. -Alan. Thanks for your good review. I have updated my changes. And it is uploaded at, http://cr.openjdk.java.net/~dxu/8013827/webrev.01/.
-Dan
- Previous message: RFR: JDK-8013827 and JDK-8011950, , java.io.File.createTempFile enters infinite loop when passed invalid data
- Next message: hg: jdk8/tl/jdk: 6251788: (rb) PropertyResourceBundle doesn't document exceptions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]