From 2eef34f4241a71955a50f2ba835970a494c98c1f Mon Sep 17 00:00:00 2001 From: akwizgran Date: Fri, 20 Jan 2023 13:35:12 +0000 Subject: [PATCH] Use new transaction wrappers. --- .../briar/feed/FeedManagerImpl.java | 39 ++++++------------- .../briar/feed/FeedManagerImplTest.java | 7 +--- 2 files changed, 13 insertions(+), 33 deletions(-) diff --git a/briar-core/src/main/java/org/briarproject/briar/feed/FeedManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/feed/FeedManagerImpl.java index adeb3aed3..419a95780 100644 --- a/briar-core/src/main/java/org/briarproject/briar/feed/FeedManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/feed/FeedManagerImpl.java @@ -167,32 +167,24 @@ class FeedManagerImpl implements FeedManager, EventListener, OpenDatabaseHook, Feed feed = feedFactory.createFeed(url, sf); // store feed metadata and new blog - Transaction txn = db.startTransaction(false); - try { + db.transaction(false, txn -> { blogManager.addBlog(txn, feed.getBlog()); List feeds = getFeeds(txn); feeds.add(feed); storeFeeds(txn, feeds); - db.commitTransaction(txn); - } finally { - db.endTransaction(txn); - } + }); // post entries long lastEntryTime = postFeedEntries(feed, sf.getEntries()); Feed updatedFeed = feedFactory.updateFeed(feed, sf, lastEntryTime); // store feed metadata again to also store last entry time - txn = db.startTransaction(false); - try { + db.transaction(false, txn -> { List feeds = getFeeds(txn); feeds.remove(feed); feeds.add(updatedFeed); storeFeeds(txn, feeds); - db.commitTransaction(txn); - } finally { - db.endTransaction(txn); - } + }); return updatedFeed; } @@ -200,14 +192,9 @@ class FeedManagerImpl implements FeedManager, EventListener, OpenDatabaseHook, @Override public void removeFeed(Feed feed) throws DbException { LOG.info("Removing RSS feed..."); - Transaction txn = db.startTransaction(false); - try { - // this will call removingBlog() where the feed itself gets removed - blogManager.removeBlog(txn, feed.getBlog()); - db.commitTransaction(txn); - } finally { - db.endTransaction(txn); - } + // this will call removingBlog() where the feed itself gets removed + db.transaction(false, txn -> + blogManager.removeBlog(txn, feed.getBlog())); } @Override @@ -375,9 +362,8 @@ class FeedManagerImpl implements FeedManager, EventListener, OpenDatabaseHook, long postFeedEntries(Feed feed, List entries) throws DbException { - long lastEntryTime = feed.getLastEntryTime(); - Transaction txn = db.startTransaction(false); - try { + return db.transactionWithResult(false, txn -> { + long lastEntryTime = feed.getLastEntryTime(); //noinspection Java8ListSort sort(entries, getEntryComparator()); for (SyndEntry entry : entries) { @@ -396,11 +382,8 @@ class FeedManagerImpl implements FeedManager, EventListener, OpenDatabaseHook, if (entryTime > lastEntryTime) lastEntryTime = entryTime; } } - db.commitTransaction(txn); - } finally { - db.endTransaction(txn); - } - return lastEntryTime; + return lastEntryTime; + }); } private void postEntry(Transaction txn, Feed feed, SyndEntry entry) { diff --git a/briar-core/src/test/java/org/briarproject/briar/feed/FeedManagerImplTest.java b/briar-core/src/test/java/org/briarproject/briar/feed/FeedManagerImplTest.java index 5116c4a9b..3b2ee973c 100644 --- a/briar-core/src/test/java/org/briarproject/briar/feed/FeedManagerImplTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/feed/FeedManagerImplTest.java @@ -137,17 +137,14 @@ public class FeedManagerImplTest extends BrambleMockTestCase { Message msg = getMessage(blogGroupId); BlogPost post = new BlogPost(msg, null, localAuthor); - context.checking(new Expectations() {{ - oneOf(db).startTransaction(false); - will(returnValue(txn)); + context.checking(new DbExpectations() {{ + oneOf(db).transactionWithResult(with(false), withDbCallable(txn)); oneOf(clock).currentTimeMillis(); will(returnValue(42L)); oneOf(blogPostFactory).createBlogPost(feed.getBlogId(), 42L, null, localAuthor, text); will(returnValue(post)); oneOf(blogManager).addLocalPost(txn, post); - oneOf(db).commitTransaction(txn); - oneOf(db).endTransaction(txn); }}); feedManager.postFeedEntries(feed, entries); }