Avoid crashing when global search encounters a NoClassDefFoundError

This commit is contained in:
arkon 2022-03-15 22:20:41 -04:00
parent 382852d0bd
commit 9c426bc216

View File

@ -112,8 +112,15 @@ abstract class HttpSource : CatalogueSource {
* @param filters the list of filters to apply. * @param filters the list of filters to apply.
*/ */
override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable<MangasPage> { override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable<MangasPage> {
return client.newCall(searchMangaRequest(page, query, filters)) return Observable.defer {
.asObservableSuccess() try {
client.newCall(searchMangaRequest(page, query, filters)).asObservableSuccess()
} catch (e: NoClassDefFoundError) {
// RxJava doesn't handle Errors, which tends to happen during global searches
// if an old extension using non-existent classes is still around
throw RuntimeException(e)
}
}
.map { response -> .map { response ->
searchMangaParse(response) searchMangaParse(response)
} }