aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/utils/LazyInitializedList.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/main/src/cgeo/geocaching/utils/LazyInitializedList.java b/main/src/cgeo/geocaching/utils/LazyInitializedList.java
index 6061394..8c773cf 100644
--- a/main/src/cgeo/geocaching/utils/LazyInitializedList.java
+++ b/main/src/cgeo/geocaching/utils/LazyInitializedList.java
@@ -6,7 +6,7 @@ import java.util.List;
public abstract class LazyInitializedList<ElementType> implements Iterable<ElementType> {
- private List<ElementType> list;
+ private volatile List<ElementType> list;
public List<ElementType> get() {
initializeList();
@@ -15,7 +15,11 @@ public abstract class LazyInitializedList<ElementType> implements Iterable<Eleme
private void initializeList() {
if (list == null) {
- list = loadFromDatabase();
+ synchronized (this) {
+ if (list == null) {
+ list = loadFromDatabase();
+ }
+ }
}
}