diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2012-11-11 13:44:14 +0100 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2012-11-11 13:44:14 +0100 |
| commit | 574bd0835ac20645c1d0f4b598fdad04c4d62317 (patch) | |
| tree | 1ada4fe155d03d2e85424c1900349605385abd62 | |
| parent | 47c20caaefce9a11ef1a8247ad25e97231f29979 (diff) | |
| download | cgeo-574bd0835ac20645c1d0f4b598fdad04c4d62317.zip cgeo-574bd0835ac20645c1d0f4b598fdad04c4d62317.tar.gz cgeo-574bd0835ac20645c1d0f4b598fdad04c4d62317.tar.bz2 | |
#1973: better thread safety
| -rw-r--r-- | main/src/cgeo/geocaching/utils/LazyInitializedList.java | 8 |
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(); + } + } } } |
