Callable<UploadResult> callable = null;
if (TransferManagerUtils.shouldUseMultipartUpload(putObjectRequest, configuration)) {
callable = new MultipartUploadCallable(this, threadPool, putObjectRequest, listenerChain);
} else {
callable = new PutObjectCallable(s3, putObjectRequest);
}
callable = new TransferStateUpdatingCallable(callable, upload);
upload.setFuture(threadPool.submit(callable));