From 6f29af1710071e269d6722b1651c45c4036340e7 Mon Sep 17 00:00:00 2001 From: Athou Date: Thu, 25 Jul 2013 16:41:48 +0200 Subject: [PATCH] better locking mechanism --- .../com/commafeed/backend/feeds/FeedRefreshUpdater.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java b/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java index 5d234cb6..bab91020 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java @@ -28,6 +28,7 @@ import com.commafeed.backend.feeds.FeedRefreshExecutor.Task; import com.commafeed.backend.model.ApplicationSettings; import com.commafeed.backend.model.Feed; import com.commafeed.backend.model.FeedEntry; +import com.commafeed.backend.model.FeedEntryContent; import com.commafeed.backend.model.FeedSubscription; import com.commafeed.backend.pubsubhubbub.SubscriptionHandler; import com.commafeed.backend.services.ApplicationSettingsService; @@ -147,9 +148,10 @@ public class FeedRefreshUpdater { // the same time String key1 = StringUtils.trimToEmpty("" + feed.getId()); - // lock on content hash, make sure we are not updating the same entry + // lock on content, make sure we are not updating the same entry // twice at the same time - String key2 = DigestUtils.sha1Hex(entry.getContent().getContent()); + FeedEntryContent content = entry.getContent(); + String key2 = DigestUtils.sha1Hex(content.getContent() + content.getTitle() + content.getAuthor()); Iterator iterator = locks.bulkGet(Arrays.asList(key1, key2)).iterator(); Lock lock1 = iterator.next();