X-Git-Url: http://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fchat%2Fbackend%2Fimplementation%2Fkafka%2FDataChannel.java;h=abe51f4a61aa5c737ab7d8ba793115e1cd29745e;hb=89b5eb1eaf7890c830848dbc4281add2bff41131;hp=ae544e41ad939ec2ee7c44c81ec219ba5ee71b91;hpb=8300dcd98f681893a077051560151a8f1b94e38d;p=demos%2Fkafka%2Fchat diff --git a/src/main/java/de/juplo/kafka/chat/backend/implementation/kafka/DataChannel.java b/src/main/java/de/juplo/kafka/chat/backend/implementation/kafka/DataChannel.java index ae544e41..abe51f4a 100644 --- a/src/main/java/de/juplo/kafka/chat/backend/implementation/kafka/DataChannel.java +++ b/src/main/java/de/juplo/kafka/chat/backend/implementation/kafka/DataChannel.java @@ -341,10 +341,17 @@ public class DataChannel implements Channel, ConsumerRebalanceListener void createChatRoomData(ChatRoomInfo chatRoomInfo) { + int shard = chatRoomInfo.getShard(); + ChatRoomData chatRoomData = computeChatRoomData( chatRoomInfo.getId(), chatRoomInfo.getShard()); - chatRoomData.activate(); + + // TODO: Possible race-condition in case of an ongoing rebalance! + if (isShardOwned[shard]) + { + chatRoomData.activate(); + } } Mono getChatRoomData(int shard, UUID id)