diff options
author | Christian Schneppe <christian@pix-art.de> | 2018-09-27 19:50:59 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2018-09-27 19:50:59 +0200 |
commit | ada027ebd65b1b98ef5e42e910229f50b97e3033 (patch) | |
tree | 6f8230beccbb600d2c601e80ae8c66ccd1e0034c | |
parent | 0623a7d785d291da89241933b078e96a2f33a1c9 (diff) |
copy into new array when returning from resolver
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/utils/Resolver.java | 16 |
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; |