mirror of
https://github.com/vanitasvitae/Smack.git
synced 2025-09-09 00:59:39 +02:00
Do not call XmlPullParser.getName() when the event is unknown
XmlPullParser.getName() only returns a result if the current parser event is START_ELEMENT or END_ELEMENT. If this is not the case, then the method may throw (if StAX is used).
This commit is contained in:
parent
4120b42761
commit
5eef31e49c
25 changed files with 74 additions and 90 deletions
|
@ -71,14 +71,13 @@ public class OfferConfirmation extends SimpleIQ {
|
|||
boolean done = false;
|
||||
while (!done) {
|
||||
parser.next();
|
||||
String elementName = parser.getName();
|
||||
if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT && "user-jid".equals(elementName)) {
|
||||
if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT && "user-jid".equals(parser.getName())) {
|
||||
confirmation.setUserJID(parser.nextText());
|
||||
}
|
||||
else if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT && "session-id".equals(elementName)) {
|
||||
else if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT && "session-id".equals(parser.getName())) {
|
||||
confirmation.setSessionID(Long.valueOf(parser.nextText()));
|
||||
}
|
||||
else if (parser.getEventType() == XmlPullParser.Event.END_ELEMENT && "offer-confirmation".equals(elementName)) {
|
||||
else if (parser.getEventType() == XmlPullParser.Event.END_ELEMENT && "offer-confirmation".equals(parser.getName())) {
|
||||
done = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -108,14 +108,13 @@ public class QueueUpdate implements ExtensionElement {
|
|||
int timeRemaining = -1;
|
||||
while (!done) {
|
||||
parser.next();
|
||||
String elementName = parser.getName();
|
||||
if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT && "position".equals(elementName)) {
|
||||
if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT && "position".equals(parser.getName())) {
|
||||
position = Integer.parseInt(parser.nextText());
|
||||
}
|
||||
else if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT && "time".equals(elementName)) {
|
||||
else if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT && "time".equals(parser.getName())) {
|
||||
timeRemaining = Integer.parseInt(parser.nextText());
|
||||
}
|
||||
else if (parser.getEventType() == XmlPullParser.Event.END_ELEMENT && "queue-status".equals(elementName)) {
|
||||
else if (parser.getEventType() == XmlPullParser.Event.END_ELEMENT && "queue-status".equals(parser.getName())) {
|
||||
done = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -179,11 +179,10 @@ public class RoomInvitation implements ExtensionElement {
|
|||
final RoomInvitation invitation = new RoomInvitation();
|
||||
invitation.type = Type.valueOf(parser.getAttributeValue("", "type"));
|
||||
|
||||
boolean done = false;
|
||||
while (!done) {
|
||||
outerloop: while (true) {
|
||||
parser.next();
|
||||
String elementName = parser.getName();
|
||||
if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT) {
|
||||
String elementName = parser.getName();
|
||||
if ("session".equals(elementName)) {
|
||||
invitation.sessionID = parser.getAttributeValue("", "id");
|
||||
}
|
||||
|
@ -203,8 +202,8 @@ public class RoomInvitation implements ExtensionElement {
|
|||
invitation.room = JidCreate.entityBareFrom(roomString);
|
||||
}
|
||||
}
|
||||
else if (parser.getEventType() == XmlPullParser.Event.END_ELEMENT && ELEMENT_NAME.equals(elementName)) {
|
||||
done = true;
|
||||
else if (parser.getEventType() == XmlPullParser.Event.END_ELEMENT && parser.getDepth() == initialDepth) {
|
||||
break outerloop;
|
||||
}
|
||||
}
|
||||
return invitation;
|
||||
|
|
|
@ -174,11 +174,10 @@ public class RoomTransfer implements ExtensionElement {
|
|||
final RoomTransfer invitation = new RoomTransfer();
|
||||
invitation.type = RoomTransfer.Type.valueOf(parser.getAttributeValue("", "type"));
|
||||
|
||||
boolean done = false;
|
||||
while (!done) {
|
||||
outerloop: while (true) {
|
||||
parser.next();
|
||||
String elementName = parser.getName();
|
||||
if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT) {
|
||||
String elementName = parser.getName();
|
||||
if ("session".equals(elementName)) {
|
||||
invitation.sessionID = parser.getAttributeValue("", "id");
|
||||
}
|
||||
|
@ -195,8 +194,8 @@ public class RoomTransfer implements ExtensionElement {
|
|||
invitation.room = parser.nextText();
|
||||
}
|
||||
}
|
||||
else if (parser.getEventType() == XmlPullParser.Event.END_ELEMENT && ELEMENT_NAME.equals(elementName)) {
|
||||
done = true;
|
||||
else if (parser.getEventType() == XmlPullParser.Event.END_ELEMENT && parser.getDepth() == initialDepth) {
|
||||
break outerloop;
|
||||
}
|
||||
}
|
||||
return invitation;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue