From c8fded3c565af37122ff949aed86af24a5b3b772 Mon Sep 17 00:00:00 2001 From: Athou Date: Tue, 4 Nov 2014 16:19:50 +0100 Subject: [PATCH] don't crash if we cannot evaluate the filter --- .../commafeed/backend/service/FeedUpdateService.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/commafeed/backend/service/FeedUpdateService.java b/src/main/java/com/commafeed/backend/service/FeedUpdateService.java index 0f51651e..033fc734 100644 --- a/src/main/java/com/commafeed/backend/service/FeedUpdateService.java +++ b/src/main/java/com/commafeed/backend/service/FeedUpdateService.java @@ -7,6 +7,7 @@ import javax.inject.Inject; import javax.inject.Singleton; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.digest.DigestUtils; @@ -19,6 +20,7 @@ import com.commafeed.backend.model.FeedEntryContent; import com.commafeed.backend.model.FeedEntryStatus; import com.commafeed.backend.model.FeedSubscription; +@Slf4j @RequiredArgsConstructor(onConstructor = @__({ @Inject })) @Singleton public class FeedUpdateService { @@ -47,7 +49,13 @@ public class FeedUpdateService { // if filter does not match the entry, mark it as read for (FeedSubscription sub : subscriptions) { FeedEntryFilter filter = new FeedEntryFilter(sub.getFilter()); - if (!filter.matchesEntry(entry)) { + boolean matches = true; + try { + matches = filter.matchesEntry(entry); + } catch (Exception e) { + log.error("could not evaluate filter {}", sub.getFilter(), e); + } + if (!matches) { FeedEntryStatus status = new FeedEntryStatus(sub.getUser(), sub, entry); status.setRead(true); feedEntryStatusDAO.saveOrUpdate(status);