diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-01-01 11:55:54 +0100 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-01-01 11:56:29 +0100 |
| commit | 08fde3648e575a7eead15bd830b4936451275e14 (patch) | |
| tree | bfa1b27cd7beb734aa40d95989d23f06fae1ced7 /main/src | |
| parent | 67fd44829a9704c618259db895d6fd4940d26b41 (diff) | |
| download | cgeo-08fde3648e575a7eead15bd830b4936451275e14.zip cgeo-08fde3648e575a7eead15bd830b4936451275e14.tar.gz cgeo-08fde3648e575a7eead15bd830b4936451275e14.tar.bz2 | |
fix #3500: crash with `null` completion in lazy lists
Also, add tests for `LazyInitializedList`.
Diffstat (limited to 'main/src')
| -rw-r--r-- | main/src/cgeo/geocaching/utils/LazyInitializedList.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/utils/LazyInitializedList.java b/main/src/cgeo/geocaching/utils/LazyInitializedList.java index 27649e8..e607919 100644 --- a/main/src/cgeo/geocaching/utils/LazyInitializedList.java +++ b/main/src/cgeo/geocaching/utils/LazyInitializedList.java @@ -1,7 +1,10 @@ package cgeo.geocaching.utils; +import org.eclipse.jdt.annotation.NonNull; + import java.util.AbstractList; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.concurrent.Callable; @@ -9,6 +12,7 @@ public abstract class LazyInitializedList<ElementType> extends AbstractList<Elem private volatile List<ElementType> list; + @NonNull private List<ElementType> getList() { if (list == null) { synchronized(this) { @@ -20,6 +24,10 @@ public abstract class LazyInitializedList<ElementType> extends AbstractList<Elem } catch (final Exception e) { Log.e("LazyInitializedList.getList", e); } + if (list == null) { + Log.e("LazyInitializedList.getList: using an empty list as a fallback"); + list = Collections.emptyList(); + } } } return list; |
