diff options
author | ByteHamster <info@bytehamster.com> | 2020-06-16 12:44:11 +0200 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2020-06-16 12:44:11 +0200 |
commit | 4a43f5209077d306546b6935253238ada153d4d3 (patch) | |
tree | 000659803636551e4ebabbd12843e5bda089336a /core/src/main/java/de/danoeh/antennapod | |
parent | 23cdf5980385985e427d26f5667fe3b58f9ea3c2 (diff) | |
download | AntennaPod-4a43f5209077d306546b6935253238ada153d4d3.zip |
Better parser errors
Diffstat (limited to 'core/src/main/java/de/danoeh/antennapod')
-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); } } |