X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdatabase%2Fmemory%2FMemoryDatabase.java;h=d7e9f58189a9456911d3c770e75f78c7409be388;hp=61eb9be8ba9b0ffdeff3da61b1f7ef591832dde8;hb=e641b6984bf4d67fb842d7a858e8521f2b34155f;hpb=84c51832a2d10656e85c2d6eeb45998c34998da4 diff --git a/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java b/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java index 61eb9be..d7e9f58 100644 --- a/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java +++ b/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java @@ -84,7 +84,7 @@ public class MemoryDatabase extends AbstractService implements Database { private final Multimap sonePosts = HashMultimap.create(); /** All posts by their recipient. */ - private final Map> recipientPosts = new HashMap>(); + private final Multimap recipientPosts = HashMultimap.create(); /** Whether posts are known. */ private final Set knownPosts = new HashSet(); @@ -258,8 +258,8 @@ public class MemoryDatabase extends AbstractService implements Database { lock.writeLock().lock(); try { /* remove all posts by the Sone. */ - getPostsFrom(sone.getId()).clear(); - for (Post post : posts) { + Collection oldPosts = getPostsFrom(sone.getId()); + for (Post post : oldPosts) { allPosts.remove(post.getId()); if (post.getRecipientId().isPresent()) { getPostsTo(post.getRecipientId().get()).remove(post); @@ -627,26 +627,12 @@ public class MemoryDatabase extends AbstractService implements Database { * @return All posts */ private Collection getPostsTo(String recipientId) { - Collection posts = null; lock.readLock().lock(); try { - posts = recipientPosts.get(recipientId); + return recipientPosts.get(recipientId); } finally { lock.readLock().unlock(); } - if (posts != null) { - return posts; - } - - posts = new HashSet(); - lock.writeLock().lock(); - try { - recipientPosts.put(recipientId, posts); - } finally { - lock.writeLock().unlock(); - } - - return posts; } /** Loads the known posts. */