diff --git a/core/src/test/java/hudson/UtilTest.java b/core/src/test/java/hudson/UtilTest.java index 2b844337c7..b8a36923d7 100644 --- a/core/src/test/java/hudson/UtilTest.java +++ b/core/src/test/java/hudson/UtilTest.java @@ -24,10 +24,6 @@ */ package hudson; -import java.nio.channels.FileChannel; -import java.nio.channels.FileLock; -import java.nio.file.Files; -import java.nio.file.StandardOpenOption; import java.util.List; import java.util.Map; import java.util.HashMap; @@ -492,15 +488,15 @@ public class UtilTest { // On unix, can't use "chmod a-w" on the dir as the code-under-test undoes that. // On unix, can't use "chattr +i" because that needs root. // On unix, can't use "chattr +u" because ext fs ignores it. + // On Windows, can't use FileChannel.lock() because that doesn't block deletion // On Windows, we can't delete files that are open for reading, so we use that. + // NOTE: This is a hack in any case as there is no guarantee that all Windows filesystems + // will enforce blocking deletion on open files... just that the ones we normally + // test with seem to block. assert Functions.isWindows(); - final FileChannel channel = FileChannel.open(f.toPath(), StandardOpenOption.READ, StandardOpenOption.WRITE); - final FileLock lock = channel.lock(); + final InputStream s = new FileInputStream(f); // intentional use of FileInputStream unlockFileCallables.put(f, new Callable() { - public Void call() throws IOException { - lock.release(); - channel.close(); - return null; }; + public Void call() throws IOException { s.close(); return null; }; }); }