parent
b8d8413a22
commit
47d65586cd
@ -210,12 +210,6 @@ public class StorageHelper {
|
|||||||
remoteOnlyRecords.size());
|
remoteOnlyRecords.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
final var unknownInserts = processKnownRecords(connection, remoteOnlyRecords);
|
|
||||||
final var unknownDeletes = idDifference.localOnlyIds()
|
|
||||||
.stream()
|
|
||||||
.filter(id -> !KNOWN_TYPES.contains(id.getType()))
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
if (!idDifference.localOnlyIds().isEmpty()) {
|
if (!idDifference.localOnlyIds().isEmpty()) {
|
||||||
final var updated = account.getRecipientStore()
|
final var updated = account.getRecipientStore()
|
||||||
.removeStorageIdsFromLocalOnlyUnregisteredRecipients(connection,
|
.removeStorageIdsFromLocalOnlyUnregisteredRecipients(connection,
|
||||||
@ -228,6 +222,12 @@ public class StorageHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final var unknownInserts = processKnownRecords(connection, remoteOnlyRecords);
|
||||||
|
final var unknownDeletes = idDifference.localOnlyIds()
|
||||||
|
.stream()
|
||||||
|
.filter(id -> !KNOWN_TYPES.contains(id.getType()))
|
||||||
|
.toList();
|
||||||
|
|
||||||
logger.debug("Storage ids with unknown type: {} inserts, {} deletes",
|
logger.debug("Storage ids with unknown type: {} inserts, {} deletes",
|
||||||
unknownInserts.size(),
|
unknownInserts.size(),
|
||||||
unknownDeletes.size());
|
unknownDeletes.size());
|
||||||
@ -279,10 +279,22 @@ public class StorageHelper {
|
|||||||
try (final var connection = account.getAccountDatabase().getConnection()) {
|
try (final var connection = account.getAccountDatabase().getConnection()) {
|
||||||
connection.setAutoCommit(false);
|
connection.setAutoCommit(false);
|
||||||
|
|
||||||
final var localStorageIds = getAllLocalStorageIds(connection);
|
var localStorageIds = getAllLocalStorageIds(connection);
|
||||||
final var idDifference = findIdDifference(remoteManifest.storageIds, localStorageIds);
|
var idDifference = findIdDifference(remoteManifest.storageIds, localStorageIds);
|
||||||
logger.debug("ID Difference :: {}", idDifference);
|
logger.debug("ID Difference :: {}", idDifference);
|
||||||
|
|
||||||
|
final var unknownOnlyLocal = idDifference.localOnlyIds()
|
||||||
|
.stream()
|
||||||
|
.filter(id -> !KNOWN_TYPES.contains(id.getType()))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if (!unknownOnlyLocal.isEmpty()) {
|
||||||
|
logger.debug("Storage ids with unknown type: {} to delete", unknownOnlyLocal.size());
|
||||||
|
account.getUnknownStorageIdStore().deleteUnknownStorageIds(connection, unknownOnlyLocal);
|
||||||
|
localStorageIds = getAllLocalStorageIds(connection);
|
||||||
|
idDifference = findIdDifference(remoteManifest.storageIds, localStorageIds);
|
||||||
|
}
|
||||||
|
|
||||||
final var remoteDeletes = idDifference.remoteOnlyIds().stream().map(StorageId::getRaw).toList();
|
final var remoteDeletes = idDifference.remoteOnlyIds().stream().map(StorageId::getRaw).toList();
|
||||||
final var remoteInserts = buildLocalStorageRecords(connection, idDifference.localOnlyIds());
|
final var remoteInserts = buildLocalStorageRecords(connection, idDifference.localOnlyIds());
|
||||||
// TODO check if local storage record proto matches remote, then reset to remote storage_id
|
// TODO check if local storage record proto matches remote, then reset to remote storage_id
|
||||||
@ -595,7 +607,7 @@ public class StorageHelper {
|
|||||||
final var remote = remoteByRawId.get(rawId);
|
final var remote = remoteByRawId.get(rawId);
|
||||||
final var local = localByRawId.get(rawId);
|
final var local = localByRawId.get(rawId);
|
||||||
|
|
||||||
if (remote.getType() != local.getType() && local.getType() != 0) {
|
if (remote.getType() != local.getType() && KNOWN_TYPES.contains(local.getType())) {
|
||||||
remoteOnlyRawIds.remove(rawId);
|
remoteOnlyRawIds.remove(rawId);
|
||||||
localOnlyRawIds.remove(rawId);
|
localOnlyRawIds.remove(rawId);
|
||||||
hasTypeMismatch = true;
|
hasTypeMismatch = true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user