aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-09-27 19:50:59 +0200
committerChristian Schneppe <christian@pix-art.de>2018-09-27 19:50:59 +0200
commitada027ebd65b1b98ef5e42e910229f50b97e3033 (patch)
tree6f8230beccbb600d2c601e80ae8c66ccd1e0034c /src/main/java/de
parent0623a7d785d291da89241933b078e96a2f33a1c9 (diff)
copy into new array when returning from resolver
Diffstat (limited to 'src/main/java/de')
-rw-r--r--src/main/java/de/pixart/messenger/utils/Resolver.java16
1 files changed, 10 insertions, 6 deletions
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;