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:
andreas.schildbach 2010-10-19 19:13:50 +00:00
parent 98ceed52f8
commit c84b8fdbaa
6 changed files with 29 additions and 9 deletions

View file

@ -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 />");
}
}