Make FileSystemWatcherTests thread-safe
The list of changes is written to on one thread and read from on another. Without some form of sychronization this is not thread-safe. This commit makes changes a synchronized list which should guarantee that the reading thread can see the changes made by the writing thread. It also removes a redundant call to clear the list of changes at the start of waitsForPollingInterval. See gh-6038
This commit is contained in:
parent
a98d1a41a4
commit
9f425343ae
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2015 the original author or authors.
|
||||
* Copyright 2012-2016 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -23,6 +23,7 @@ import java.io.FileOutputStream;
|
|||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
|
@ -56,7 +57,8 @@ public class FileSystemWatcherTests {
|
|||
|
||||
private FileSystemWatcher watcher;
|
||||
|
||||
private List<Set<ChangedFiles>> changes = new ArrayList<Set<ChangedFiles>>();
|
||||
private List<Set<ChangedFiles>> changes = Collections
|
||||
.synchronizedList(new ArrayList<Set<ChangedFiles>>());
|
||||
|
||||
@Rule
|
||||
public TemporaryFolder temp = new TemporaryFolder();
|
||||
|
@ -158,7 +160,6 @@ public class FileSystemWatcherTests {
|
|||
|
||||
@Test
|
||||
public void waitsForPollingInterval() throws Exception {
|
||||
this.changes.clear();
|
||||
setupWatcher(100, 1);
|
||||
File folder = startWithNewFolder();
|
||||
touch(new File(folder, "test1.txt"));
|
||||
|
|
Loading…
Reference in New Issue