throws Throwable, RestFSException {
boolean fetchSucceed = false;
if(rfs.fileStatus(source).isDir()) {
Utils.mkdirs(dest);
RestFileStatus statuses[] = rfs.listStatus(source).toArray();
if(statuses != null && statuses.length > 0) {
// sort the files so that index files come last. Maybe
// this will help keep them cached until the swap
Arrays.sort(statuses, new IndexFileLastComparator());
byte[] origCheckSum = null;