mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-13 16:20:34 +00:00
try to detect IO problems and throw IOException in case
git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@312 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
parent
98ceed52f8
commit
c84b8fdbaa
6 changed files with 29 additions and 9 deletions
|
@ -80,6 +80,8 @@ public abstract class AbstractEfaProvider implements NetworkProvider
|
|||
final XmlPullParser pp = factory.newPullParser();
|
||||
pp.setInput(is, DEFAULT_ENCODING);
|
||||
|
||||
assertItdRequest(pp);
|
||||
|
||||
// parse odv name elements
|
||||
if (!XmlPullUtil.jumpToStartTag(pp, null, "itdOdv") || !"origin".equals(pp.getAttributeValue(null, "usage")))
|
||||
throw new IllegalStateException("cannot find <itdOdv usage=\"origin\" />");
|
||||
|
@ -223,6 +225,8 @@ public abstract class AbstractEfaProvider implements NetworkProvider
|
|||
final XmlPullParser pp = factory.newPullParser();
|
||||
pp.setInput(is, DEFAULT_ENCODING);
|
||||
|
||||
assertItdRequest(pp);
|
||||
|
||||
if (!XmlPullUtil.jumpToStartTag(pp, null, "itdOdv") || !"dm".equals(pp.getAttributeValue(null, "usage")))
|
||||
throw new IllegalStateException("cannot find <itdOdv usage=\"dm\" />");
|
||||
if (!XmlPullUtil.nextStartTagInsideTree(pp, null, "itdOdvName"))
|
||||
|
@ -649,6 +653,8 @@ public abstract class AbstractEfaProvider implements NetworkProvider
|
|||
final XmlPullParser pp = factory.newPullParser();
|
||||
pp.setInput(is, DEFAULT_ENCODING);
|
||||
|
||||
assertItdRequest(pp);
|
||||
|
||||
if (!XmlPullUtil.jumpToStartTag(pp, null, "itdOdv") || !"dm".equals(pp.getAttributeValue(null, "usage")))
|
||||
throw new IllegalStateException("cannot find <itdOdv usage=\"dm\" />");
|
||||
if (!XmlPullUtil.nextStartTagInsideTree(pp, null, "itdOdvName"))
|
||||
|
@ -819,8 +825,7 @@ public abstract class AbstractEfaProvider implements NetworkProvider
|
|||
final XmlPullParser pp = factory.newPullParser();
|
||||
pp.setInput(is, DEFAULT_ENCODING);
|
||||
|
||||
if (!XmlPullUtil.jumpToStartTag(pp, null, "itdRequest"))
|
||||
throw new IllegalStateException("cannot find <itdRequest />");
|
||||
assertItdRequest(pp);
|
||||
final String sessionId = pp.getAttributeValue(null, "sessionID");
|
||||
|
||||
if (!XmlPullUtil.jumpToStartTag(pp, null, "itdTripRequest"))
|
||||
|
@ -1136,4 +1141,10 @@ public abstract class AbstractEfaProvider implements NetworkProvider
|
|||
{
|
||||
return LINES.get(line.charAt(0));
|
||||
}
|
||||
|
||||
private void assertItdRequest(final XmlPullParser pp) throws XmlPullParserException, IOException
|
||||
{
|
||||
if (!XmlPullUtil.jumpToStartTag(pp, null, "itdRequest"))
|
||||
throw new IOException("cannot find <itdRequest />");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -146,7 +146,7 @@ public abstract class AbstractHafasProvider implements NetworkProvider
|
|||
final XmlPullParser pp = factory.newPullParser();
|
||||
pp.setInput(is, DEFAULT_ENCODING);
|
||||
|
||||
XmlPullUtil.jump(pp, "ResC");
|
||||
assertResC(pp);
|
||||
XmlPullUtil.enter(pp);
|
||||
|
||||
XmlPullUtil.require(pp, "LocValRes");
|
||||
|
@ -245,7 +245,10 @@ public abstract class AbstractHafasProvider implements NetworkProvider
|
|||
final XmlPullParser pp = factory.newPullParser();
|
||||
pp.setInput(is, DEFAULT_ENCODING);
|
||||
|
||||
XmlPullUtil.jump(pp, "ConRes");
|
||||
assertResC(pp);
|
||||
XmlPullUtil.enter(pp);
|
||||
|
||||
XmlPullUtil.require(pp, "ConRes");
|
||||
XmlPullUtil.enter(pp);
|
||||
if (pp.getName().equals("Err"))
|
||||
{
|
||||
|
@ -876,4 +879,10 @@ public abstract class AbstractHafasProvider implements NetworkProvider
|
|||
{
|
||||
return LINES.get(line.charAt(0));
|
||||
}
|
||||
|
||||
private void assertResC(final XmlPullParser pp) throws XmlPullParserException, IOException
|
||||
{
|
||||
if (!XmlPullUtil.jumpToStartTag(pp, null, "ResC"))
|
||||
throw new IOException("cannot find <ResC />");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -218,7 +218,7 @@ public final class BahnProvider implements NetworkProvider
|
|||
else if (type.equals("REQ0JourneyStops1.0K"))
|
||||
viaAddresses = addresses;
|
||||
else
|
||||
throw new IOException(type);
|
||||
throw new IllegalStateException(type);
|
||||
}
|
||||
|
||||
if (fromAddresses != null || viaAddresses != null || toAddresses != null)
|
||||
|
|
|
@ -285,7 +285,7 @@ public class OebbProvider extends AbstractHafasProvider
|
|||
else if (type.equals("REQ0JourneyStops1.0K"))
|
||||
viaAddresses = addresses;
|
||||
else
|
||||
throw new IOException(type);
|
||||
throw new IllegalStateException(type);
|
||||
}
|
||||
|
||||
if (fromAddresses != null || viaAddresses != null || toAddresses != null)
|
||||
|
|
|
@ -227,7 +227,7 @@ public class RmvProvider extends AbstractHafasProvider
|
|||
else if (type.equals("Zielort"))
|
||||
toAddresses = addresses;
|
||||
else
|
||||
throw new IOException(type);
|
||||
throw new IllegalStateException(type);
|
||||
}
|
||||
|
||||
if (fromAddresses != null || viaAddresses != null || toAddresses != null)
|
||||
|
|
|
@ -137,7 +137,7 @@ public final class ParserUtils
|
|||
if (tries-- > 0)
|
||||
System.out.println("got empty page, retrying...");
|
||||
else
|
||||
throw new IOException("got empty page: " + url);
|
||||
throw new RuntimeException("got empty page: " + url);
|
||||
}
|
||||
}
|
||||
catch (final SocketTimeoutException x)
|
||||
|
@ -145,7 +145,7 @@ public final class ParserUtils
|
|||
if (tries-- > 0)
|
||||
System.out.println("socket timed out, retrying...");
|
||||
else
|
||||
throw x;
|
||||
throw new RuntimeException(x);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue