Skip to content
Permalink
Browse files
8158066: SourceDebugExtensionTest fails to rename file
Backport-of: b979952
  • Loading branch information
shipilev committed Aug 13, 2021
1 parent 50a6d9d commit 156c939436c6ca26fb05b26ca3852e01aa0fb19d
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 11 deletions.
@@ -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 static void install(byte[] aOrig, byte[] aSdeAttr, File outClassFile, boo
}

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");
}

new InstallSDE(tmpInOutClassFile, attrFile, tmpFile, verbose);

if (!inOutClassFile.delete()) {
throw new IOException("inOutClassFile.delete() failed");
if (!tmpInOutClassFile.delete()) {
throw new IOException("tmpInOutClassFile.delete() failed");
}
if (!tmpFile.renameTo(inOutClassFile)) {
throw new IOException("tmpFile.renameTo(inOutClassFile) failed");
@@ -870,8 +870,6 @@ com/sun/jdi/BasicJDWPConnectionTest.java 8195703 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

############################################################################
@@ -31,10 +31,18 @@ static void install(File inClassFile, File attrFile, File outClassFile)
}

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");

1 comment on commit 156c939

@openjdk-notifier
Copy link

@openjdk-notifier openjdk-notifier bot commented on 156c939 Aug 13, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.