Using a per file checksum generator in the file copy in HdfsFetcher. This is used to handle the case where we might retry the copy in case of a Filesystem (hdfs) error.
Adding an extra catch block for Exception and Throwable types. This is used to catch the ClassNotFound exceptions
Adding test cases whch simulate intermittent exceptions etc
in the hdfsfetcher and simulate retry logic
this ensures checksum calculation is robust
Added test case to test runtime exceptions
Cleaned up the try catch  logic