diff options
Diffstat (limited to 'main/src/cgeo/geocaching/DataStore.java')
| -rw-r--r-- | main/src/cgeo/geocaching/DataStore.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/main/src/cgeo/geocaching/DataStore.java b/main/src/cgeo/geocaching/DataStore.java index 662ce8b..4543451 100644 --- a/main/src/cgeo/geocaching/DataStore.java +++ b/main/src/cgeo/geocaching/DataStore.java @@ -1162,15 +1162,19 @@ public class DataStore { } private static void saveAttributesWithoutTransaction(final Geocache cache) { - String geocode = cache.getGeocode(); + final String geocode = cache.getGeocode(); + + // The attributes must be fetched first because lazy loading may load + // a null set otherwise. + final List<String> attributes = cache.getAttributes(); database.delete(dbTableAttributes, "geocode = ?", new String[]{geocode}); - if (cache.getAttributes().isEmpty()) { + if (attributes.isEmpty()) { return; } SQLiteStatement statement = PreparedStatements.getInsertAttribute(); final long timestamp = System.currentTimeMillis(); - for (String attribute : cache.getAttributes()) { + for (final String attribute : attributes) { statement.bindString(1, geocode); statement.bindLong(2, timestamp); statement.bindString(3, attribute); |
