This resolves a problem where the sha256 checksum values being added to the sha256 manifest file were being corrupted because multiple threads were using the same instance of the ChecksumUtil simultaneously via the SpaceItemWriter. The change ensures that the method that generates the checksum and writes it to the output file is synchronized. Also in the case where the file isn't downloaded correctly (either there is no local file or the checksum is null), an exception is now thrown rather than the error being swallowed.