From 5048e826dc4aae2e877d8dc78e8d2847a4a520db Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Wed, 26 Aug 2015 18:04:16 +0200 Subject: [PATCH] Hafas: Handle unparsable XML when querying for departures. --- enabler/src/de/schildbach/pte/AbstractHafasProvider.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java index 2cd7babd..9ff9463f 100644 --- a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java @@ -505,11 +505,14 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider final String normalizedStationId = normalizeStationId(stationId); StringReplaceReader reader = null; + String firstChars = null; try { // work around unparsable XML - reader = new StringReplaceReader(new InputStreamReader(httpClient.getInputStream(uri), Charsets.ISO_8859_1), " & ", " & "); + final InputStream is = httpClient.getInputStream(uri); + firstChars = HttpClient.peekFirstChars(is); + reader = new StringReplaceReader(new InputStreamReader(is, Charsets.ISO_8859_1), " & ", " & "); reader.replace("", " "); reader.replace("", " "); reader.replace("", " "); @@ -741,7 +744,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider } catch (final XmlPullParserException x) { - throw new RuntimeException(x); + throw new ParserException("cannot parse xml: " + firstChars, x); } finally {