summaryrefslogtreecommitdiff
path: root/core/src/main
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2020-06-16 12:44:11 +0200
committerByteHamster <info@bytehamster.com>2020-06-16 12:44:11 +0200
commit4a43f5209077d306546b6935253238ada153d4d3 (patch)
tree000659803636551e4ebabbd12843e5bda089336a /core/src/main
parent23cdf5980385985e427d26f5667fe3b58f9ea3c2 (diff)
downloadAntennaPod-4a43f5209077d306546b6935253238ada153d4d3.zip
Better parser errors
Diffstat (limited to 'core/src/main')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedParserTask.java22
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/InvalidFeedException.java3
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);
}
}