diff --git a/src/de/schildbach/pte/BahnProvider.java b/src/de/schildbach/pte/BahnProvider.java index 4948bc52..2e7b9f4c 100644 --- a/src/de/schildbach/pte/BahnProvider.java +++ b/src/de/schildbach/pte/BahnProvider.java @@ -311,14 +311,21 @@ public final class BahnProvider extends AbstractHafasProvider + "Übergang.*?" // + "\\s*(.+?)\\s*
\n" // arrival + ")", Pattern.DOTALL); - private static final Pattern P_CONNECTION_DETAILS_MESSAGES = Pattern - .compile("Dauer: \\d+:\\d+|(Anschlusszug nicht mehr rechtzeitig)|(Anschlusszug jedoch erreicht werden)|(nur teilweise dargestellt)|(Längerer Aufenthalt)|(äquivalentem Bahnhof)|(Bahnhof wird mehrfach durchfahren)"); + private static final Pattern P_CONNECTION_DETAILS_ERROR = Pattern.compile("(zwischenzeitlich nicht mehr gespeichert)"); + private static final Pattern P_CONNECTION_DETAILS_MESSAGES = Pattern.compile("Dauer: \\d+:\\d+"); @Override public GetConnectionDetailsResult getConnectionDetails(final String uri) throws IOException { final CharSequence page = ParserUtils.scrape(uri); + final Matcher mError = P_CONNECTION_DETAILS_ERROR.matcher(page); + if (mError.find()) + { + if (mError.group(1) != null) + throw new SessionExpiredException(); + } + final Matcher mHead = P_CONNECTION_DETAILS_HEAD.matcher(page); if (mHead.matches()) {