From f484c62a1e7f06f888d9316a615ccb7b5b2b495c Mon Sep 17 00:00:00 2001 From: Joel Thomas Date: Sun, 14 Jun 2026 17:00:49 +0530 Subject: [PATCH] Fix cache refresh handling for unsaved records - Preserve NEW_RECORD entries during cache refresh - Prevent accidental deletion of pending datastore changes - Clean up only stale persisted records --- .../datastores/DataStore.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Trenser.VehicleServiceSystem/Trenser.VehicleServiceSystem/datastores/DataStore.h b/Trenser.VehicleServiceSystem/Trenser.VehicleServiceSystem/datastores/DataStore.h index 34268f4..265f8df 100644 --- a/Trenser.VehicleServiceSystem/Trenser.VehicleServiceSystem/datastores/DataStore.h +++ b/Trenser.VehicleServiceSystem/Trenser.VehicleServiceSystem/datastores/DataStore.h @@ -230,9 +230,17 @@ void DataStore::refreshCache(util::Map>& cac for (int index = 0; index < oldCache.getSize(); ++index) { const std::string& id = oldCache.getKeyAt(index); + const TrackedRecord& localTrackedRecord = oldCache.getValueAt(index); if (cache.find(id) == -1) { - delete oldCache.getValueAt(index).data; + if (localTrackedRecord.state == RecordState::NEW_RECORD) + { + cache.insert(id, localTrackedRecord); + } + else + { + delete localTrackedRecord.data; + } } } } \ No newline at end of file