8158066: SourceDebugExtensionTest fails to rename file

Reviewed-by: dcubed, dholmes
This commit is contained in:
Gary Adams 2019-01-18 05:33:28 -05:00
parent 289c155e7d
commit b979952d62
3 changed files with 23 additions and 11 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2007, 2019, 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
@ -58,12 +58,18 @@ public class InstallSDE {
}
public static void install(File inOutClassFile, File attrFile, boolean verbose) throws IOException {
File tmpFile = new File(inOutClassFile.getPath() + "tmp");
File tmpFile = new File(inOutClassFile.getPath() + "tmp-out");
File tmpInOutClassFile = new File(inOutClassFile.getPath() + "tmp-in");
new InstallSDE(inOutClassFile, attrFile, tmpFile, verbose);
// Workaround delayed file deletes on Windows using a tmp file name
if (!inOutClassFile.renameTo(tmpInOutClassFile)) {
throw new IOException("inOutClassFile.renameTo(tmpInOutClassFile) failed");
}
if (!inOutClassFile.delete()) {
throw new IOException("inOutClassFile.delete() failed");
new InstallSDE(tmpInOutClassFile, attrFile, tmpFile, verbose);
if (!tmpInOutClassFile.delete()) {
throw new IOException("tmpInOutClassFile.delete() failed");
}
if (!tmpFile.renameTo(inOutClassFile)) {
throw new IOException("tmpFile.renameTo(inOutClassFile) failed");

View File

@ -838,8 +838,6 @@ tools/pack200/CommandLineTests.java 8059906 generic-
com/sun/jdi/RepStep.java 8043571 generic-all
com/sun/jdi/sde/SourceDebugExtensionTest.java 8158066 windows-all
com/sun/jdi/NashornPopFrameTest.java 8187143 generic-all
############################################################################

View File

@ -31,10 +31,18 @@ class InstallSDE {
}
static void install(File inOutClassFile, File attrFile) throws IOException {
File tmpFile = new File(inOutClassFile.getPath() + "tmp");
new InstallSDE(inOutClassFile, attrFile, tmpFile);
if (!inOutClassFile.delete()) {
throw new IOException("inOutClassFile.delete() failed");
File tmpFile = new File(inOutClassFile.getPath() + "tmp-out");
File tmpInOutClassFile = new File(inOutClassFile.getPath() + "tmp-in");
// Workaround delayed file deletes on Windows using a tmp file name
if (!inOutClassFile.renameTo(tmpInOutClassFile)) {
throw new IOException("tmp copy of inOutClassFile failed");
}
new InstallSDE(tmpInOutClassFile, attrFile, tmpFile);
if (!tmpInOutClassFile.delete()) {
throw new IOException("tmpInOutClassFile.delete() failed");
}
if (!tmpFile.renameTo(inOutClassFile)) {
throw new IOException("tmpFile.renameTo(inOutClassFile) failed");