diff --git a/source/net/filebot/similarity/EpisodeMatcher.java b/source/net/filebot/similarity/EpisodeMatcher.java index 3bd50741..90f05002 100644 --- a/source/net/filebot/similarity/EpisodeMatcher.java +++ b/source/net/filebot/similarity/EpisodeMatcher.java @@ -118,11 +118,16 @@ public class EpisodeMatcher extends Matcher { // check episode sequence integrity Integer seqIndex = null; - for (Episode ep : episodes) { - if (seqIndex != null && !ep.getEpisode().equals(seqIndex + 1)) + for (Episode it : episodes) { + // any illegal episode object breaks the chain + if (it == null || it.getEpisode() == null || it.getSpecial() != null) return false; - seqIndex = ep.getEpisode(); + // non-sequential episode index breaks the chain + if (seqIndex != null && !it.getEpisode().equals(seqIndex + 1)) + return false; + + seqIndex = it.getEpisode(); } // check drill-down integrity diff --git a/source/net/filebot/web/AnidbClient.java b/source/net/filebot/web/AnidbClient.java index 763593fd..ef785f62 100644 --- a/source/net/filebot/web/AnidbClient.java +++ b/source/net/filebot/web/AnidbClient.java @@ -73,13 +73,13 @@ public class AnidbClient extends AbstractEpisodeListProvider { } @Override - public List search(String query, final Locale locale) throws Exception { + public List search(String query, Locale locale) throws Exception { // bypass automatic caching since search is based on locally cached data anyway return fetchSearchResult(query, locale); } @Override - public List fetchSearchResult(String query, final Locale locale) throws Exception { + public List fetchSearchResult(String query, Locale locale) throws Exception { LocalSearch index = new LocalSearch(getAnimeTitles()) { @Override