TransferProgress transferProgress = new TransferProgress();
transferProgress.setTotalBytesToTransfer(metadata.getContentLength());
ProgressListenerChain listenerChain = new ProgressListenerChain(
new TransferProgressUpdatingListener(transferProgress));
CopyImpl copy = new CopyImpl(description, transferProgress,
listenerChain, stateChangeListener);
CopyCallable copyCallable = new CopyCallable(this, threadPool, copy,
copyObjectRequest, metadata, listenerChain);
CopyMonitor watcher = new CopyMonitor(this, copy, threadPool,