From ada027ebd65b1b98ef5e42e910229f50b97e3033 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Thu, 27 Sep 2018 19:50:59 +0200 Subject: copy into new array when returning from resolver --- src/main/java/de/pixart/messenger/utils/Resolver.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/main/java/de') diff --git a/src/main/java/de/pixart/messenger/utils/Resolver.java b/src/main/java/de/pixart/messenger/utils/Resolver.java index 4bae6fae7..d0985edce 100644 --- a/src/main/java/de/pixart/messenger/utils/Resolver.java +++ b/src/main/java/de/pixart/messenger/utils/Resolver.java @@ -108,14 +108,18 @@ public class Resolver { threads[1].join(); if (results.size() > 0) { threads[2].interrupt(); - Collections.sort(results); - Log.d(Config.LOGTAG, Resolver.class.getSimpleName() + ": " + results.toString()); - return results; + synchronized (results) { + Collections.sort(results); + Log.d(Config.LOGTAG, Resolver.class.getSimpleName() + ": " + results.toString()); + return new ArrayList<>(results); + } } else { threads[2].join(); - Collections.sort(fallbackResults); - Log.d(Config.LOGTAG, Resolver.class.getSimpleName() + ": " + fallbackResults.toString()); - return fallbackResults; + synchronized (fallbackResults) { + Collections.sort(fallbackResults); + Log.d(Config.LOGTAG, Resolver.class.getSimpleName() + ": " + fallbackResults.toString()); + return new ArrayList<>(fallbackResults); + } } } catch (InterruptedException e) { return results; -- cgit v1.2.3