Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[JENKINS-42934] Some unit tests need side-effects of FileInputStream
  • Loading branch information
stephenc committed Mar 22, 2017
1 parent e603b10 commit 568772c
Showing 1 changed file with 6 additions and 10 deletions.
16 changes: 6 additions & 10 deletions core/src/test/java/hudson/UtilTest.java
Expand Up @@ -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;
Expand Down Expand Up @@ -492,15 +488,15 @@ private void lockFileForDeletion(File f) throws IOException, InterruptedExceptio
// 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<Void>() {
public Void call() throws IOException {
lock.release();
channel.close();
return null; };
public Void call() throws IOException { s.close(); return null; };
});
}

Expand Down

0 comments on commit 568772c

Please sign in to comment.