Inlined CollectionUtils.withoutDuplicates() into the single place it was used.
Don't use a no-op FileLockContentionHandler in the daemon client - use the same handler as everywhere else.
Whitespace.
Added a javadoc about the dodgy contract.
Moved class to test fixtures.
Added javadocs and @Incubating
Compile the regex once rather than once per file.
Use a Factory instead of Runnable and get rid of using the AtomicReference to hold the return value.
Use a util method to canonicalize the file.
Don't need to use fully qualified names.
Don't need to box the return value.
Added some notes.