diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java | 22 | ||||
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/util/InvalidFeedException.java | 3 |
2 files changed, 8 insertions, 17 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java index 05e602db8..c50162788 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java @@ -49,10 +49,7 @@ public class FeedParserTask implements Callable<FeedHandlerResult> { try { result = feedHandler.parseFeed(feed); Log.d(TAG, feed.getTitle() + " parsed"); - if (!checkFeedData(feed)) { - throw new InvalidFeedException(); - } - + checkFeedData(feed); } catch (SAXException | IOException | ParserConfigurationException e) { successful = false; e.printStackTrace(); @@ -95,23 +92,17 @@ public class FeedParserTask implements Callable<FeedHandlerResult> { /** * Checks if the feed was parsed correctly. */ - private boolean checkFeedData(Feed feed) { + private void checkFeedData(Feed feed) throws InvalidFeedException { if (feed.getTitle() == null) { - Log.e(TAG, "Feed has no title."); - return false; - } - if (!hasValidFeedItems(feed)) { - Log.e(TAG, "Feed has invalid items"); - return false; + throw new InvalidFeedException("Feed has no title"); } - return true; + checkFeedItems(feed); } - private boolean hasValidFeedItems(Feed feed) { + private void checkFeedItems(Feed feed) throws InvalidFeedException { for (FeedItem item : feed.getItems()) { if (item.getTitle() == null) { - Log.e(TAG, "Item has no title"); - return false; + throw new InvalidFeedException("Item has no title: " + item); } if (item.getPubDate() == null) { Log.e(TAG, "Item has no pubDate. Using current time as pubDate"); @@ -121,7 +112,6 @@ public class FeedParserTask implements Callable<FeedHandlerResult> { item.setPubDate(new Date()); } } - return true; } public DownloadStatus getDownloadStatus() { diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/InvalidFeedException.java b/core/src/main/java/de/danoeh/antennapod/core/util/InvalidFeedException.java index ebde1e412..a45136432 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/InvalidFeedException.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/InvalidFeedException.java @@ -6,6 +6,7 @@ package de.danoeh.antennapod.core.util; public class InvalidFeedException extends Exception { private static final long serialVersionUID = 1L; - public InvalidFeedException() { + public InvalidFeedException(String message) { + super(message); } } |