Bladeren bron

Log error if remote file is found missing in local DB

vishnukvmd 3 jaren geleden
bovenliggende
commit
e97cc15d7d
2 gewijzigde bestanden met toevoegingen van 15 en 2 verwijderingen
  1. 4 0
      lib/core/errors.dart
  2. 11 2
      lib/services/sync_service.dart

+ 4 - 0
lib/core/errors.dart

@@ -32,3 +32,7 @@ class InvalidSyncStatusError extends AssertionError {
 }
 }
 
 
 class UnauthorizedEditError extends AssertionError {}
 class UnauthorizedEditError extends AssertionError {}
+
+class InvalidStateError extends AssertionError {
+  InvalidStateError(String message) : super(message);
+}

+ 11 - 2
lib/services/sync_service.dart

@@ -205,9 +205,18 @@ class SyncService {
       for (final dupe in dupes.duplicates) {
       for (final dupe in dupes.duplicates) {
         final files = <File>[];
         final files = <File>[];
         for (final id in dupe.fileIDs) {
         for (final id in dupe.fileIDs) {
-          files.add(fileMap[id]);
+          if (fileMap.containsKey(id)) {
+            files.add(fileMap[id]);
+          } else {
+            _logger.severe(
+                "Could not find file in local DB",
+                InvalidStateError(
+                    "Could not find file in local DB " + id.toString()));
+          }
+        }
+        if (files.length > 1) {
+          result.add(DuplicateFiles(files, dupe.size));
         }
         }
-        result.add(DuplicateFiles(files, dupe.size));
       }
       }
       result.sort((a, b) {
       result.sort((a, b) {
         final aSize = a.files.length * a.size;
         final aSize = a.files.length * a.size;