Fixed issue #12, missed remove of already published retained messages
This commit is contained in:
@@ -94,7 +94,7 @@ public class MemoryStorageService implements IMessagesStore, ISessionsStore {
|
||||
|
||||
@Override
|
||||
public List<PublishEvent> retrievePersistedPublishes(String clientID) {
|
||||
return m_persistentMessageStore.get(clientID);
|
||||
return new ArrayList<>(m_persistentMessageStore.get(clientID));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -248,6 +248,7 @@ class ProtocolProcessor implements EventHandler<ValueEvent> {
|
||||
for (PublishEvent pubEvt : publishedEvents) {
|
||||
sendPublish(pubEvt.getClientID(), pubEvt.getTopic(), pubEvt.getQos(),
|
||||
pubEvt.getMessage(), false, pubEvt.getMessageID());
|
||||
m_messagesStore.cleanPersistedPublishMessage(clientID, pubEvt.getMessageID());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -237,6 +237,7 @@ public class MapDBPersistentStore implements IMessagesStore, ISessionsStore {
|
||||
}
|
||||
|
||||
public void removeQoS2Message(String publishKey) {
|
||||
LOG.debug("Removing stored Q0S2 message <{}>", publishKey);
|
||||
m_qos2Store.remove(publishKey);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user