Fix infinite loop when no chapter number is parsed

This commit is contained in:
Robin Appelman 2016-02-16 20:37:57 +01:00
parent 1e81f75377
commit 57b64a412e
2 changed files with 16 additions and 6 deletions

View File

@ -111,12 +111,15 @@ public class ChapterRecognition {
} }
// Strip anything after "part xxx" and try that // Strip anything after "part xxx" and try that
name = pPart.matcher(name).replaceAll("$1"); matcher = pPart.matcher(name);
dummyChapter.name = name; if (matcher.find()) {
parseChapterNumber(dummyChapter, manga); name = pPart.matcher(name).replaceAll("$1");
if (dummyChapter.chapter_number >= 0) { dummyChapter.name = name;
chapter.chapter_number = dummyChapter.chapter_number; parseChapterNumber(dummyChapter, manga);
return; if (dummyChapter.chapter_number >= 0) {
chapter.chapter_number = dummyChapter.chapter_number;
return;
}
} }
} }

View File

@ -172,4 +172,11 @@ public class ChapterRecognitionTest {
ChapterRecognition.parseChapterNumber(c, randomManga); ChapterRecognition.parseChapterNumber(c, randomManga);
assertThat(c.chapter_number).isEqualTo(027f); assertThat(c.chapter_number).isEqualTo(027f);
} }
@Test
public void testUnparsable() {
Chapter c = createChapter("Foo");
ChapterRecognition.parseChapterNumber(c, randomManga);
assertThat(c.chapter_number).isEqualTo(-1f);
}
} }