[Fix] Fixed bug when removing single message

This commit is contained in:
Robert von Burg 2022-06-22 12:36:51 +02:00
parent fe4b66dead
commit 095b98c2a4
Signed by: eitch
GPG Key ID: 75DB9C85C74331F7
1 changed files with 16 additions and 5 deletions

View File

@ -105,8 +105,11 @@ public class OperationsLog extends StrolchComponent {
String realmName = message.getRealm();
LinkedHashMap<Locator, LinkedHashSet<LogMessage>> byLocator = this.logMessagesByLocator.get(realmName);
if (byLocator != null)
byLocator.remove(message.getLocator());
if (byLocator != null) {
LinkedHashSet<LogMessage> messages = byLocator.get(message.getLocator());
if (messages != null)
messages.remove(message);
}
LinkedHashSet<LogMessage> messages = this.logMessagesByRealmAndId.get(realmName);
if (messages != null) {
@ -127,8 +130,13 @@ public class OperationsLog extends StrolchComponent {
messagesByRealm.forEach((realmName, messages) -> {
LinkedHashMap<Locator, LinkedHashSet<LogMessage>> byLocator = this.logMessagesByLocator.get(realmName);
if (byLocator != null)
messages.forEach(logMessage -> byLocator.remove(logMessage.getLocator()));
if (byLocator != null) {
messages.forEach(logMessage -> {
LinkedHashSet<LogMessage> tmp = byLocator.get(logMessage.getLocator());
if (tmp != null)
tmp.remove(logMessage);
});
}
LinkedHashSet<LogMessage> byRealm = this.logMessagesByRealmAndId.get(realmName);
if (byRealm != null) {
@ -249,7 +257,10 @@ public class OperationsLog extends StrolchComponent {
LinkedHashMap<Locator, LinkedHashSet<LogMessage>> logMessages = this.logMessagesByLocator.get(realm);
if (logMessages == null)
return Optional.empty();
return Optional.ofNullable(logMessages.get(locator));
LinkedHashSet<LogMessage> result = logMessages.get(locator);
if (result == null)
return Optional.empty();
return Optional.of(new HashSet<>(result));
}
public synchronized List<LogMessage> getMessages(String realm) {