UploadImpl upload = new UploadImpl(description, transferProgress,
listenerChain, stateListener);
UploadCallable uploadCallable = new UploadCallable(this, threadPool,
upload, putObjectRequest, listenerChain, multipartUploadId);
UploadMonitor watcher = new UploadMonitor(this, upload, threadPool,
uploadCallable, putObjectRequest, listenerChain);
watcher.setTimedThreadPool(timedThreadPool);
upload.setMonitor(watcher);
return upload;
}