# HG changeset patch # User bpb # Date 1483662351 28800 # Thu Jan 05 16:25:51 2017 -0800 # Node ID 6b1d559b475d779e4d0fbb5641c46080422bda05 # Parent 8b55846dd69d41d6865b4acf84f153560b3156d5 8152272: Unable to create temporary file using createTempFile method if System.getProperty(file.separator) is used Summary: Normalize the name component of the temporary file path Reviewed-by: XXX diff --git a/src/java.base/share/classes/java/io/File.java b/src/java.base/share/classes/java/io/File.java --- a/src/java.base/share/classes/java/io/File.java +++ b/src/java.base/share/classes/java/io/File.java @@ -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 @@ 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) diff --git a/test/java/io/File/createTempFile/Patterns.java b/test/java/io/File/createTempFile/Patterns.java --- a/test/java/io/File/createTempFile/Patterns.java +++ b/test/java/io/File/createTempFile/Patterns.java @@ -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 @@ cky("xxx", ""); cky("xxx", "y"); cky("xxx", ".y"); + cky("xyz", "Directory" + System.getProperty("file.separator")); } }