X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdatabase%2Fmemory%2FMemoryBookmarkDatabase.java;h=594cf2b3bc05a1afcc82f8a19355eee1604ae1ad;hb=3d6cffe82270a1faacf1f0d39c34b11ab316e0db;hp=34ff024d0838c2d39480ff5e86da7f92338ae989;hpb=723de3522aa5c04634932f05bf4075304979c7a9;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/database/memory/MemoryBookmarkDatabase.java b/src/main/java/net/pterodactylus/sone/database/memory/MemoryBookmarkDatabase.java index 34ff024..594cf2b 100644 --- a/src/main/java/net/pterodactylus/sone/database/memory/MemoryBookmarkDatabase.java +++ b/src/main/java/net/pterodactylus/sone/database/memory/MemoryBookmarkDatabase.java @@ -8,6 +8,7 @@ import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; import net.pterodactylus.sone.data.Post; +import net.pterodactylus.sone.data.Post.EmptyPost; import net.pterodactylus.sone.database.BookmarkDatabase; import com.google.common.base.Function; @@ -63,6 +64,7 @@ public class MemoryBookmarkDatabase implements BookmarkDatabase { lock.writeLock().lock(); try { bookmarkedPosts.add(post.getId()); + saveBookmarkedPosts(); } finally { lock.writeLock().unlock(); } @@ -73,6 +75,7 @@ public class MemoryBookmarkDatabase implements BookmarkDatabase { lock.writeLock().lock(); try { bookmarkedPosts.remove(post.getId()); + saveBookmarkedPosts(); } finally { lock.writeLock().unlock(); } @@ -92,11 +95,12 @@ public class MemoryBookmarkDatabase implements BookmarkDatabase { public Set getBookmarkedPosts() { lock.readLock().lock(); try { - return from(bookmarkedPosts).transformAndConcat( - new Function>() { + return from(bookmarkedPosts).transform( + new Function() { @Override - public Iterable apply(String postId) { - return memoryDatabase.getPost(postId).asSet(); + public Post apply(String postId) { + return memoryDatabase.getPost(postId) + .or(new EmptyPost(postId)); } }).toSet(); } finally {