--- /dev/null 2016-05-31 10:06:53.000000000 +0300 +++ new/test/java/awt/FileDialog/DeleteInsideFileDialog/DeleteInsideFileDialogTest.java 2016-05-31 10:06:53.084884900 +0300 @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2016, 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 + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + @test + @bug 8075516 + @requires os.family=="windows" + @summary Deleting a file from either the open or save java.awt.FileDialog + hangs. + @run main/manual DeleteInsideFileDialogTest +*/ + +import java.awt.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +public class DeleteInsideFileDialogTest { + + private static Path dir; + private static Path file1; + private static Path file2; + private static Frame f; + private static FileDialog fd; + + public static void main(String[] args) throws Exception { + + String instructions = + "1) Delete file deleteMe.tst in the opened File Dialog window" + + " using the right click popup menu\n" + + "2) Select thenSelectMe.tst file in the File Dialog and press" + + " Open (if this is not possible the test fails)\n"; + dir = Files.createTempDirectory("Test"); + file1 = Files.createFile(Paths.get(dir.toString(), "deleteMe.tst")); + file2 = Files.createFile(Paths.get(dir.toString(), "thenSelectMe.tst")); + try { + f = new Frame("Instructions"); + f.add(new TextArea(instructions, 6, 60, TextArea.SCROLLBARS_NONE)); + f.pack(); + f.setLocation(100, 500); + f.setVisible(true); + + fd = new FileDialog((Frame)null); + fd.setDirectory(dir.toString()); + fd.setVisible(true); + if (fd.getFile() == null) { + throw new RuntimeException("Failed"); + } + } finally { + if (fd != null) { + fd.dispose(); + } + if (f != null) { + f.dispose(); + } + Files.deleteIfExists(file1); + Files.deleteIfExists(file2); + Files.deleteIfExists(dir); + } + } +}