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 3aeaab5bd806fad1f5f3f08d8555bfeb4f04cfbd..2cfe8926517f79a620230d1031a50ba7933e2792 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 @@ -161,12 +161,7 @@ class FeedManagerImpl implements FeedManager, Client, EventListener, @Override public void addFeed(String url) throws DbException, IOException { // fetch syndication feed to get its metadata - SyndFeed f; - try { - f = fetchSyndFeed(url); - } catch (FeedException e) { - throw new IOException(e); - } + SyndFeed f = fetchSyndFeed(url); Feed feed = feedFactory.createFeed(url, f); @@ -183,12 +178,7 @@ class FeedManagerImpl implements FeedManager, Client, EventListener, } // fetch feed again and post entries - Feed updatedFeed; - try { - updatedFeed = fetchFeed(feed); - } catch (FeedException e) { - throw new IOException(e); - } + Feed updatedFeed = fetchFeed(feed); // store feed again to also store last added entry txn = db.startTransaction(false); @@ -314,10 +304,6 @@ class FeedManagerImpl implements FeedManager, Client, EventListener, for (Feed feed : feeds) { try { newFeeds.add(fetchFeed(feed)); - } catch (FeedException e) { - if (LOG.isLoggable(WARNING)) - LOG.log(WARNING, e.toString(), e); - newFeeds.add(feed); } catch (IOException e) { if (LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e); @@ -339,15 +325,14 @@ class FeedManagerImpl implements FeedManager, Client, EventListener, LOG.info("Done updating RSS feeds"); } - private SyndFeed fetchSyndFeed(String url) - throws FeedException, IOException { + private SyndFeed fetchSyndFeed(String url) throws IOException { // fetch feed InputStream stream = getFeedInputStream(url); SyndFeed f = getSyndFeed(stream); stream.close(); if (f.getEntries().size() == 0) - throw new FeedException("Feed has no entries"); + throw new IOException("Feed has no entries"); // clean title String title = @@ -371,8 +356,7 @@ class FeedManagerImpl implements FeedManager, Client, EventListener, return f; } - private Feed fetchFeed(Feed feed) - throws FeedException, IOException, DbException { + private Feed fetchFeed(Feed feed) throws IOException, DbException { // fetch and clean feed SyndFeed f = fetchSyndFeed(feed.getUrl()); @@ -402,11 +386,16 @@ class FeedManagerImpl implements FeedManager, Client, EventListener, throw new IOException("Empty response body"); } - private SyndFeed getSyndFeed(InputStream stream) - throws IOException, FeedException { + private SyndFeed getSyndFeed(InputStream stream) throws IOException { SyndFeedInput input = new SyndFeedInput(); - return input.build(new XmlReader(stream)); + try { + return input.build(new XmlReader(stream)); + } catch (IllegalArgumentException e) { + throw new IOException(e); + } catch (FeedException e) { + throw new IOException(e); + } } private long postFeedEntries(Feed feed, List<SyndEntry> entries)