diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index cb8f3422..4f096e50 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -1549,7 +1549,9 @@ public class MemoryMessagesStore implements IMessagesStore { WFCMessage.GroupInfo groupInfo = mIMap.get(groupId); if (groupInfo == null) { - return ErrorCode.ERROR_CODE_NOT_EXIST; + WFCMessage.GroupMember deletedMember = WFCMessage.GroupMember.newBuilder().setMemberId(fromUser).setType(GroupMemberType_Removed).setUpdateDt(System.currentTimeMillis()).build(); + members.add(deletedMember); + return ErrorCode.ERROR_CODE_SUCCESS; } else if (groupInfo.getMemberUpdateDt() <= maxDt) { return ErrorCode.ERROR_CODE_NOT_MODIFIED; } @@ -1581,7 +1583,10 @@ public class MemoryMessagesStore implements IMessagesStore { if (fromUser != null && notInGroup) { members.clear(); if (self != null) { - members.add(self.toBuilder().setUpdateDt(0).setType(GroupMemberType_Removed).build()); + members.add(self); + } else { + WFCMessage.GroupMember deletedMember = WFCMessage.GroupMember.newBuilder().setMemberId(fromUser).setType(GroupMemberType_Removed).setUpdateDt(System.currentTimeMillis()).build(); + members.add(deletedMember); } }