public WorkResult execute(final CopyActionProcessingStream stream) {
final Set<RelativePath> visitedFiles = new HashSet<RelativePath>();
return delegate.execute(new CopyActionProcessingStream() {
public void process(final CopyActionProcessingStreamAction action) {
stream.process(new CopyActionProcessingStreamAction() {
public void processFile(FileCopyDetailsInternal details) {
if (!details.isDirectory()) {
DuplicatesStrategy strategy = details.getDuplicatesStrategy();
if (!visitedFiles.add(details.getRelativePath())) {