From ac9a5914a2eee3bd717c89ed7d69177dd8de9335 Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Thu, 16 Jul 2026 14:36:39 +0200 Subject: [PATCH] fix(plex): handle malformed lyrics XML --- lib/services/plex_lyrics_parser.dart | 2 +- test/services/plex_lyrics_parser_test.dart | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/services/plex_lyrics_parser.dart b/lib/services/plex_lyrics_parser.dart index ed4c4bab..b058b2d0 100644 --- a/lib/services/plex_lyrics_parser.dart +++ b/lib/services/plex_lyrics_parser.dart @@ -22,7 +22,7 @@ Lyrics? parsePlexLyricsResponse(Object? raw) { if (trimmed.startsWith('<')) { try { return _parseXmlLyrics(trimmed); - } on XmlParserException { + } on XmlException { return null; } } diff --git a/test/services/plex_lyrics_parser_test.dart b/test/services/plex_lyrics_parser_test.dart index 4c740ff9..b2dd6367 100644 --- a/test/services/plex_lyrics_parser_test.dart +++ b/test/services/plex_lyrics_parser_test.dart @@ -60,4 +60,10 @@ void main() { expect(plain!.synced, isFalse); expect(plain.lines.map((line) => line.text), ['Plain first line', 'Plain second line']); }); + + test('returns null for XML with unclosed tags', () { + final lyrics = parsePlexLyricsResponse(''); + + expect(lyrics, isNull); + }); }