@Override
    public File call() throws Exception {
        try {
            for (Future<Long> file : partFiles) {
                long filePosition = file.get();
                download.updatePersistableTransfer(currentPartNumber++, filePosition);
            }

            download.setState(Transfer.TransferState.Completed);
        } catch (Exception exception) {
            cleanUpAfterException();
            throw new SdkClientException("Unable to complete multipart download. Individual part download failed.", exception);
        } finally {
            FileLocks.unlock(destinationFile);
        }

        return destinationFile;
    }
Helper class to merge all the individual part files into a destinationFile.
aws-java-sdk-s3/src/main/java/com/amazonaws/services/s3/transfer/internal/CompleteMultipartDownload.java