8152272: Unable to create temporary file using createTempFile method if System.getProperty(file.separator) is used

Normalize the name component of the temporary file path

Reviewed-by: rriggs
This commit is contained in:
Brian Burkhalter 2017-01-13 13:31:16 -08:00
parent 922f392c82
commit eeb1e36d49
2 changed files with 7 additions and 3 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1994, 2016, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1994, 2017, 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
@ -1962,6 +1962,9 @@ public class File
name = sb.toString();
}
// Normalize the path component
name = fs.normalize(name);
File f = new File(dir, name);
if (!name.equals(f.getName()) || f.isInvalid()) {
if (System.getSecurityManager() != null)

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 2017, 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
@ -22,7 +22,7 @@
*/
/* @test
@bug 4152178
@bug 4152178 8152272
@summary Check various temp-file prefix/suffix cases */
import java.io.File;
@ -66,6 +66,7 @@ public class Patterns {
cky("xxx", "");
cky("xxx", "y");
cky("xxx", ".y");
cky("xyz", "Directory" + System.getProperty("file.separator"));
}
}