work around for bug in xmlpullparser

This commit is contained in:
Daniel Gultsch 2014-04-17 10:34:25 +02:00 committed by Andreas Straub
parent cc977eee90
commit 18c0c31b65

View File

@ -51,8 +51,9 @@ public class XmlReader {
public Tag readTag() throws XmlPullParserException, IOException { public Tag readTag() throws XmlPullParserException, IOException {
if (wakeLock.isHeld()) { if (wakeLock.isHeld()) {
wakeLock.release(); //release wake look while waiting on next parser event wakeLock.release();
} }
try {
while(parser.next() != XmlPullParser.END_DOCUMENT) { while(parser.next() != XmlPullParser.END_DOCUMENT) {
wakeLock.acquire(); wakeLock.acquire();
if (parser.getEventType() == XmlPullParser.START_TAG) { if (parser.getEventType() == XmlPullParser.START_TAG) {
@ -76,7 +77,10 @@ public class XmlReader {
if (wakeLock.isHeld()) { if (wakeLock.isHeld()) {
wakeLock.release(); wakeLock.release();
} }
return null; //end document; } catch (ArrayIndexOutOfBoundsException e) {
throw new IOException("xml parser mishandled ArrayIndexOufOfBounds", e);
}
return null;
} }
public Element readElement(Tag currentTag) throws XmlPullParserException, IOException { public Element readElement(Tag currentTag) throws XmlPullParserException, IOException {