MDL-34612 Restore: Gracefully handle empty file contenthash while restoring
authorRajesh Taneja <rajesh@moodle.com>
Tue, 15 Oct 2013 06:44:00 +0000 (14:44 +0800)
committerRajesh Taneja <rajesh@moodle.com>
Tue, 22 Oct 2013 01:47:42 +0000 (09:47 +0800)
backup/util/dbops/restore_dbops.class.php

index 0d0155d..f1f5443 100644 (file)
@@ -976,6 +976,15 @@ abstract class restore_dbops {
             );
 
             if (empty($file->repositoryid)) {
+                // If contenthash is empty then gracefully skip adding file.
+                if (empty($file->contenthash)) {
+                    $result = new stdClass();
+                    $result->code = 'file_missing_in_backup';
+                    $result->message = sprintf('missing file (%s) contenthash in backup for component %s', $file->filename, $component);
+                    $result->level = backup::LOG_WARNING;
+                    $results[] = $result;
+                    continue;
+                }
                 // this is a regular file, it must be present in the backup pool
                 $backuppath = $basepath . backup_file_manager::get_backup_content_file_location($file->contenthash);