Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/jarabe/journal/model.py24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/jarabe/journal/model.py b/src/jarabe/journal/model.py
index b6d2bde..19d437b 100644
--- a/src/jarabe/journal/model.py
+++ b/src/jarabe/journal/model.py
@@ -153,7 +153,13 @@ class BaseResultSet(object):
query = self._query.copy()
query['limit'] = self._cache_limit
query['offset'] = offset
- entries, self._total_count = self.find(query)
+ entries, total_count = self.find(query)
+
+ if total_count != self._total_count:
+ logging.warning('Inconsistency detected, remaking the cache')
+ self._offset = 0
+ self._cache.remove_all(self._cache)
+ return self.read(max_count)
self._cache.remove_all(self._cache)
self._cache.append_all(entries)
@@ -168,7 +174,13 @@ class BaseResultSet(object):
query = self._query.copy()
query['limit'] = max_count
query['offset'] = last_cached_entry
- entries, self._total_count = self.find(query)
+ entries, total_count = self.find(query)
+
+ if total_count != self._total_count:
+ logging.warning('Inconsistency detected, remaking the cache')
+ self._offset = 0
+ self._cache.remove_all(self._cache)
+ return self.read(max_count)
# update cache
self._cache.append_all(entries)
@@ -190,7 +202,13 @@ class BaseResultSet(object):
query = self._query.copy()
query['limit'] = limit
query['offset'] = self._offset
- entries, self._total_count = self.find(query)
+ entries, total_count = self.find(query)
+
+ if total_count != self._total_count:
+ logging.warning('Inconsistency detected, remaking the cache')
+ self._offset = 0
+ self._cache.remove_all(self._cache)
+ return self.read(max_count)
# update cache
self._cache.prepend_all(entries)