From f047c23c0950a0d748fca6a2d040d2b2b767508b Mon Sep 17 00:00:00 2001 From: Joe Stein Date: Mon, 1 Jul 2019 13:40:46 +0200 Subject: Gracefully handle bad ID3 chapter URLs --- .../core/util/id3reader/ChapterReader.java | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/id3reader/ChapterReader.java b/core/src/main/java/de/danoeh/antennapod/core/util/id3reader/ChapterReader.java index f681b8062..d22d08e09 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/id3reader/ChapterReader.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/id3reader/ChapterReader.java @@ -1,6 +1,10 @@ package de.danoeh.antennapod.core.util.id3reader; import android.util.Log; +import de.danoeh.antennapod.core.feed.Chapter; +import de.danoeh.antennapod.core.feed.ID3Chapter; +import de.danoeh.antennapod.core.util.id3reader.model.FrameHeader; +import de.danoeh.antennapod.core.util.id3reader.model.TagHeader; import java.io.IOException; import java.io.InputStream; @@ -8,11 +12,6 @@ import java.net.URLDecoder; import java.util.ArrayList; import java.util.List; -import de.danoeh.antennapod.core.feed.Chapter; -import de.danoeh.antennapod.core.feed.ID3Chapter; -import de.danoeh.antennapod.core.util.id3reader.model.FrameHeader; -import de.danoeh.antennapod.core.util.id3reader.model.TagHeader; - public class ChapterReader extends ID3Reader { private static final String TAG = "ID3ChapterReader"; @@ -69,11 +68,14 @@ public class ChapterReader extends ID3Reader { int descriptionLength = readString(null, input, header.getSize()); StringBuilder link = new StringBuilder(); readISOString(link, input, header.getSize() - descriptionLength); - String decodedLink = URLDecoder.decode(link.toString(), "UTF-8"); - - currentChapter.setLink(decodedLink); + try { + String decodedLink = URLDecoder.decode(link.toString(), "UTF-8"); + currentChapter.setLink(decodedLink); + Log.d(TAG, "Found link: " + currentChapter.getLink()); + } catch (IllegalArgumentException _iae) { + Log.w(TAG, "Bad URL found in ID3 data"); + } - Log.d(TAG, "Found link: " + currentChapter.getLink()); return ID3Reader.ACTION_DONT_SKIP; } break; -- cgit v1.2.3