mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-09-03 04:26:12 +08:00
Tolerate files being briefly left open by FileWritingMessageHandler
When the context is closed, FileWritingMessageHandler is stopped and it closes its output files. However, it appears to do so in a manner which means that they may be closed after the call to close the context is completed. This causes problems on Windows as files that are still open cannot be deleted. This commit adds a workaround to SampleIntegrationApplicationTests so that it makes up to 10 attempts each 0.5s apart to clean up the input and output directories.
This commit is contained in:
parent
6cab03de0b
commit
3927dca3e0
@ -50,9 +50,21 @@ public class SampleIntegrationApplicationTests {
|
||||
private ConfigurableApplicationContext context;
|
||||
|
||||
@Before
|
||||
public void deleteOutput() {
|
||||
FileSystemUtils.deleteRecursively(new File("target/input"));
|
||||
FileSystemUtils.deleteRecursively(new File("target/output"));
|
||||
public void deleteInputAndOutput() throws InterruptedException {
|
||||
deleteIfExists(new File("target/input"));
|
||||
deleteIfExists(new File("target/output"));
|
||||
}
|
||||
|
||||
private void deleteIfExists(File directory) throws InterruptedException {
|
||||
if (directory.exists()) {
|
||||
for (int i = 0; i < 10; i++) {
|
||||
if (FileSystemUtils.deleteRecursively(directory)) {
|
||||
return;
|
||||
}
|
||||
Thread.sleep(100);
|
||||
}
|
||||
throw new IllegalStateException("Failed to delete '" + directory + "'");
|
||||
}
|
||||
}
|
||||
|
||||
@After
|
||||
|
Loading…
Reference in New Issue
Block a user