From 8d8df245a7c692e32c95771e31317dd963089d3c Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Wed, 3 Feb 2016 22:53:59 +0100 Subject: [PATCH] Fixed a tiny issue in the way buffered sync functions are handled. --- .../java/de/kuschku/libquassel/client/QClient.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/de/kuschku/libquassel/client/QClient.java b/app/src/main/java/de/kuschku/libquassel/client/QClient.java index c97a4a042..32949f18e 100644 --- a/app/src/main/java/de/kuschku/libquassel/client/QClient.java +++ b/app/src/main/java/de/kuschku/libquassel/client/QClient.java @@ -80,7 +80,7 @@ public class QClient extends AClient { private final NotificationManager notificationManager; private final List<String> initRequests = new LinkedList<>(); private final List<Integer> backlogRequests = new LinkedList<>(); - private final Map<String, SyncFunction> bufferedSyncs = new HashMap<>(); + private final Map<String, List<SyncFunction>> bufferedSyncs = new HashMap<>(); private final QBacklogManager backlogManager; private QBufferViewManager bufferViewManager; // local @@ -347,7 +347,10 @@ public class QClient extends AClient { if (bufferedSyncs.size() > 0) { String key = hashName(className, objectName); if (bufferedSyncs.containsKey(key)) { - provider.handle(bufferedSyncs.get(key)); + List<SyncFunction> functions = bufferedSyncs.get(key); + for (SyncFunction function : functions) + provider.handle(function); + bufferedSyncs.remove(key); } } } @@ -429,6 +432,8 @@ public class QClient extends AClient { public void bufferSync(@NonNull SyncFunction packedFunc) { String key = hashName(packedFunc.className, packedFunc.objectName); - bufferedSyncs.put(key, packedFunc); + if (!bufferedSyncs.containsKey(key)) + bufferedSyncs.put(key, new LinkedList<>()); + bufferedSyncs.get(key).add(packedFunc); } } -- GitLab