From 6648d8fa3015b03e8e1427eb51c0ce2be2192966 Mon Sep 17 00:00:00 2001 From: "andreas.schildbach" Date: Sun, 15 Aug 2010 18:25:06 +0000 Subject: [PATCH] moved empty page retry mechanism to ParserUtils git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@83 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- src/de/schildbach/pte/MvvProvider.java | 22 ++++------------------ src/de/schildbach/pte/ParserUtils.java | 11 ++++++++++- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/src/de/schildbach/pte/MvvProvider.java b/src/de/schildbach/pte/MvvProvider.java index fb51bae3..b9728062 100644 --- a/src/de/schildbach/pte/MvvProvider.java +++ b/src/de/schildbach/pte/MvvProvider.java @@ -213,12 +213,8 @@ public class MvvProvider implements NetworkProvider final LocationType toType, final String to, final Date date, final boolean dep) throws IOException { final String uri = connectionsQueryUri(fromType, from, viaType, via, toType, to, date, dep); - CharSequence page = ParserUtils.scrape(uri); - while (page.length() == 0) - { - System.out.println("Got empty page, retrying..."); - page = ParserUtils.scrape(uri); - } + + final CharSequence page = ParserUtils.scrape(uri); final Matcher mError = P_CHECK_CONNECTIONS_ERROR.matcher(page); if (mError.find()) @@ -266,12 +262,7 @@ public class MvvProvider implements NetworkProvider public QueryConnectionsResult queryMoreConnections(final String uri) throws IOException { - CharSequence page = ParserUtils.scrape(uri); - while (page.length() == 0) - { - System.out.println("Got empty page, retrying..."); - page = ParserUtils.scrape(uri); - } + final CharSequence page = ParserUtils.scrape(uri); return queryConnections(uri, page); } @@ -383,12 +374,7 @@ public class MvvProvider implements NetworkProvider public GetConnectionDetailsResult getConnectionDetails(final String uri) throws IOException { - CharSequence page = ParserUtils.scrape(uri); - while (page.length() == 0) - { - System.out.println("Got empty page, retrying..."); - page = ParserUtils.scrape(uri); - } + final CharSequence page = ParserUtils.scrape(uri); final Matcher mHead = P_CONNECTION_DETAILS_HEAD.matcher(page); if (mHead.matches()) diff --git a/src/de/schildbach/pte/ParserUtils.java b/src/de/schildbach/pte/ParserUtils.java index d788fc01..ca78345c 100644 --- a/src/de/schildbach/pte/ParserUtils.java +++ b/src/de/schildbach/pte/ParserUtils.java @@ -85,7 +85,16 @@ public final class ParserUtils } pageReader.close(); - return buffer; + + if (buffer.length() > 0) + return buffer; + else + { + if (tries-- > 0) + System.out.println("got empty page, retrying..."); + else + throw new IOException("got empty page: " + url); + } } catch (final SocketTimeoutException x) {