From 706f3d28ab839369d0036299c4ee77d12b776a9a Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Thu, 7 Oct 2021 15:30:27 +0200 Subject: Fix concurrent access on TrafficHistory lists --- .../java/de/blinkt/openvpn/core/TrafficHistory.java | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/main/src/main/java/de/blinkt/openvpn/core/TrafficHistory.java b/main/src/main/java/de/blinkt/openvpn/core/TrafficHistory.java index 6ba35066..3d6e6850 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/TrafficHistory.java +++ b/main/src/main/java/de/blinkt/openvpn/core/TrafficHistory.java @@ -23,9 +23,9 @@ public class TrafficHistory implements Parcelable { public static final long PERIODS_TO_KEEP = 5; public static final int TIME_PERIOD_MINTUES = 60 * 1000; public static final int TIME_PERIOD_HOURS = 3600 * 1000; - private LinkedList trafficHistorySeconds = new LinkedList<>(); - private LinkedList trafficHistoryMinutes = new LinkedList<>(); - private LinkedList trafficHistoryHours = new LinkedList<>(); + private final LinkedList trafficHistorySeconds = new LinkedList<>(); + private final LinkedList trafficHistoryMinutes = new LinkedList<>(); + private final LinkedList trafficHistoryHours = new LinkedList<>(); private TrafficDatapoint lastSecondUsedForMinute; private TrafficDatapoint lastMinuteUsedForHours; @@ -93,16 +93,16 @@ public class TrafficHistory implements Parcelable { } - public LinkedList getHours() { - return trafficHistoryHours; + public synchronized LinkedList getHours() { + return new LinkedList<>(trafficHistoryHours); } - public LinkedList getMinutes() { - return trafficHistoryMinutes; + public synchronized LinkedList getMinutes() { + return new LinkedList<>(trafficHistoryMinutes); } - public LinkedList getSeconds() { - return trafficHistorySeconds; + public synchronized LinkedList getSeconds() { + return new LinkedList<>(trafficHistorySeconds); } public static LinkedList getDummyList() { @@ -162,7 +162,7 @@ public class TrafficHistory implements Parcelable { return diff; } - private void addDataPoint(TrafficDatapoint tdp) { + private synchronized void addDataPoint(TrafficDatapoint tdp) { trafficHistorySeconds.add(tdp); if (lastSecondUsedForMinute == null) { -- cgit v1.2.3