mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2025-09-09 10:19:41 +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
|
@ -340,7 +340,6 @@ public class RTPBridge extends IQ {
|
|||
boolean done = false;
|
||||
|
||||
XmlPullParser.Event eventType;
|
||||
String elementName;
|
||||
|
||||
if (!parser.getNamespace().equals(RTPBridge.NAMESPACE))
|
||||
// TODO: Should be SmackParseException.
|
||||
|
@ -356,9 +355,9 @@ public class RTPBridge extends IQ {
|
|||
// Start processing sub-elements
|
||||
while (!done) {
|
||||
eventType = parser.next();
|
||||
elementName = parser.getName();
|
||||
|
||||
if (eventType == XmlPullParser.Event.START_ELEMENT) {
|
||||
String elementName = parser.getName();
|
||||
if (elementName.equals("candidate")) {
|
||||
for (int i = 0; i < parser.getAttributeCount(); i++) {
|
||||
if (parser.getAttributeName(i).equals("ip"))
|
||||
|
|
|
@ -66,14 +66,13 @@ public abstract class JingleContentDescriptionProvider extends ExtensionElementP
|
|||
public JingleContentDescription parse(XmlPullParser parser,
|
||||
int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException,
|
||||
IOException {
|
||||
boolean done = false;
|
||||
JingleContentDescription desc = getInstance();
|
||||
|
||||
while (!done) {
|
||||
outerloop: while (true) {
|
||||
XmlPullParser.Event eventType = parser.next();
|
||||
String name = parser.getName();
|
||||
|
||||
if (eventType == XmlPullParser.Event.START_ELEMENT) {
|
||||
String name = parser.getName();
|
||||
if (name.equals(JingleContentDescription.JinglePayloadType.NODENAME)) {
|
||||
desc.addJinglePayloadType(parsePayload(parser));
|
||||
} else {
|
||||
|
@ -81,8 +80,8 @@ public abstract class JingleContentDescriptionProvider extends ExtensionElementP
|
|||
throw new IOException("Unknow element \"" + name + "\" in content.");
|
||||
}
|
||||
} else if (eventType == XmlPullParser.Event.END_ELEMENT) {
|
||||
if (name.equals(JingleContentDescription.NODENAME)) {
|
||||
done = true;
|
||||
if (parser.getDepth() == initialDepth) {
|
||||
break outerloop;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,14 +65,12 @@ public abstract class JingleDescriptionProvider extends ExtensionElementProvider
|
|||
*/
|
||||
@Override
|
||||
public JingleDescription parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException {
|
||||
boolean done = false;
|
||||
JingleDescription desc = getInstance();
|
||||
|
||||
while (!done) {
|
||||
outerloop: while (true) {
|
||||
XmlPullParser.Event eventType = parser.next();
|
||||
String name = parser.getName();
|
||||
|
||||
if (eventType == XmlPullParser.Event.START_ELEMENT) {
|
||||
String name = parser.getName();
|
||||
if (name.equals(PayloadType.NODENAME)) {
|
||||
desc.addPayloadType(parsePayload(parser));
|
||||
} else {
|
||||
|
@ -80,8 +78,8 @@ public abstract class JingleDescriptionProvider extends ExtensionElementProvider
|
|||
throw new IOException("Unknow element \"" + name + "\" in content.");
|
||||
}
|
||||
} else if (eventType == XmlPullParser.Event.END_ELEMENT) {
|
||||
if (name.equals(JingleDescription.NODENAME)) {
|
||||
done = true;
|
||||
if (parser.getDepth() == initialDepth) {
|
||||
break outerloop;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -84,10 +84,10 @@ public class JingleProvider extends IQProvider<Jingle> {
|
|||
// Start processing sub-elements
|
||||
while (!done) {
|
||||
eventType = parser.next();
|
||||
elementName = parser.getName();
|
||||
namespace = parser.getNamespace();
|
||||
|
||||
if (eventType == XmlPullParser.Event.START_ELEMENT) {
|
||||
elementName = parser.getName();
|
||||
namespace = parser.getNamespace();
|
||||
|
||||
// Parse some well know subelements, depending on the namespaces
|
||||
// and element names...
|
||||
|
|
|
@ -54,14 +54,13 @@ public abstract class JingleTransportProvider extends ExtensionElementProvider<J
|
|||
*/
|
||||
@Override
|
||||
public JingleTransport parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException {
|
||||
boolean done = false;
|
||||
JingleTransport trans = getInstance();
|
||||
|
||||
while (!done) {
|
||||
outerloop: while (true) {
|
||||
XmlPullParser.Event eventType = parser.next();
|
||||
String name = parser.getName();
|
||||
|
||||
if (eventType == XmlPullParser.Event.START_ELEMENT) {
|
||||
String name = parser.getName();
|
||||
if (name.equals(JingleTransportCandidate.NODENAME)) {
|
||||
JingleTransportCandidate jtc = parseCandidate(parser);
|
||||
if (jtc != null) trans.addCandidate(jtc);
|
||||
|
@ -72,8 +71,8 @@ public abstract class JingleTransportProvider extends ExtensionElementProvider<J
|
|||
}
|
||||
}
|
||||
else if (eventType == XmlPullParser.Event.END_ELEMENT) {
|
||||
if (name.equals(JingleTransport.NODENAME)) {
|
||||
done = true;
|
||||
if (parser.getDepth() == initialDepth) {
|
||||
break outerloop;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue