From 761946d2a3e4fb97c6c2e006605846b91a6472ba Mon Sep 17 00:00:00 2001 From: Athou Date: Tue, 2 Jul 2013 10:14:47 +0200 Subject: [PATCH] catch potential exception (timeout) when subscribing --- .../services/FeedSubscriptionService.java | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/commafeed/backend/services/FeedSubscriptionService.java b/src/main/java/com/commafeed/backend/services/FeedSubscriptionService.java index cbff079e..4ec1ea25 100644 --- a/src/main/java/com/commafeed/backend/services/FeedSubscriptionService.java +++ b/src/main/java/com/commafeed/backend/services/FeedSubscriptionService.java @@ -6,6 +6,8 @@ import javax.ejb.ApplicationException; import javax.inject.Inject; import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.commafeed.backend.dao.FeedEntryDAO; import com.commafeed.backend.dao.FeedEntryStatusDAO; @@ -22,6 +24,8 @@ import com.google.api.client.util.Lists; public class FeedSubscriptionService { + private static Logger log = LoggerFactory.getLogger(FeedSubscriptionService.class); + @SuppressWarnings("serial") @ApplicationException public static class FeedSubscriptionException extends RuntimeException { @@ -77,16 +81,20 @@ public class FeedSubscriptionService { feedSubscriptionDAO.saveOrUpdate(sub); if (newSubscription) { - List statuses = Lists.newArrayList(); - List allEntries = feedEntryDAO.findByFeed(feed, 0, 10); - for (FeedEntry entry : allEntries) { - FeedEntryStatus status = new FeedEntryStatus(); - status.setEntry(entry); - status.setRead(false); - status.setSubscription(sub); - statuses.add(status); + try { + List statuses = Lists.newArrayList(); + List allEntries = feedEntryDAO.findByFeed(feed, 0, 10); + for (FeedEntry entry : allEntries) { + FeedEntryStatus status = new FeedEntryStatus(); + status.setEntry(entry); + status.setRead(false); + status.setSubscription(sub); + statuses.add(status); + } + feedEntryStatusDAO.saveOrUpdate(statuses); + } catch (Exception e) { + log.error("could not fetch initial statuses when importing {} : {}", feed.getUrl(), e.getMessage()); } - feedEntryStatusDAO.saveOrUpdate(statuses); } taskGiver.add(feed); return feed;