aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2012-11-11 13:44:14 +0100
committerBananeweizen <bananeweizen@gmx.de>2012-11-11 13:44:14 +0100
commit574bd0835ac20645c1d0f4b598fdad04c4d62317 (patch)
tree1ada4fe155d03d2e85424c1900349605385abd62
parent47c20caaefce9a11ef1a8247ad25e97231f29979 (diff)
downloadcgeo-574bd0835ac20645c1d0f4b598fdad04c4d62317.zip
cgeo-574bd0835ac20645c1d0f4b598fdad04c4d62317.tar.gz
cgeo-574bd0835ac20645c1d0f4b598fdad04c4d62317.tar.bz2
#1973: better thread safety
-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();
+ }
+ }
}
}