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