1
0
Fork 0
mirror of https://github.com/vanitasvitae/Smack.git synced 2025-09-09 17:19: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:
Florian Schmaus 2021-07-06 12:33:11 +02:00
parent 4120b42761
commit 5eef31e49c
25 changed files with 74 additions and 90 deletions

View file

@ -1,6 +1,6 @@
/**
*
* Copyright © 2016-2019 Florian Schmaus
* Copyright © 2016-2021 Florian Schmaus
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -39,9 +39,9 @@ public class IoTSetRequestProvider extends IQProvider<IoTSetRequest> {
List<SetData> data = new ArrayList<>(4);
outerloop: while (true) {
final XmlPullParser.Event eventType = parser.next();
final String name = parser.getName();
switch (eventType) {
case START_ELEMENT:
final String name = parser.getName();
switch (name) {
case "bool": {
String valueName = parser.getAttributeValue(null, "name");

View file

@ -110,9 +110,9 @@ public class IoTFieldsExtensionProvider extends ExtensionElementProvider<IoTFiel
List<IoTDataField> fields = new ArrayList<>();
outerloop: while (true) {
final XmlPullParser.Event eventType = parser.next();
final String name = parser.getName();
switch (eventType) {
case START_ELEMENT:
final String name = parser.getName();
IoTDataField field = null;
final String fieldName = parser.getAttributeValue(null, "name");
final String fieldValue = parser.getAttributeValue(null, "value");

View file

@ -59,9 +59,9 @@ public class MamPrefsIQProvider extends IQProvider<MamPrefsIQ> {
outerloop: while (true) {
final XmlPullParser.Event eventType = parser.next();
final String name = parser.getName();
switch (eventType) {
case START_ELEMENT:
final String name = parser.getName();
switch (name) {
case "always":
alwaysJids = iterateJids(parser);
@ -92,9 +92,9 @@ public class MamPrefsIQProvider extends IQProvider<MamPrefsIQ> {
outerloop: while (true) {
final XmlPullParser.Event eventType = parser.next();
final String name = parser.getName();
switch (eventType) {
case START_ELEMENT:
final String name = parser.getName();
switch (name) {
case "jid":
parser.next();

View file

@ -47,10 +47,10 @@ public class MamQueryIQProvider extends IQProvider<MamQueryIQ> {
outerloop: while (true) {
final XmlPullParser.Event eventType = parser.next();
final String name = parser.getName();
switch (eventType) {
case START_ELEMENT:
final String name = parser.getName();
switch (name) {
case DataForm.ELEMENT:
dataForm = DataFormProvider.INSTANCE.parse(parser);

View file

@ -49,9 +49,9 @@ public class MamResultProvider extends ExtensionElementProvider<MamResultExtensi
outerloop: while (true) {
final XmlPullParser.Event eventType = parser.next();
final String name = parser.getName();
switch (eventType) {
case START_ELEMENT:
final String name = parser.getName();
switch (name) {
case Forwarded.ELEMENT:
forwarded = ForwardedProvider.parseForwardedMessage(parser, xmlEnvironment);

View file

@ -50,10 +50,11 @@ public class MarkupElementProvider extends ExtensionElementProvider<MarkupElemen
while (true) {
XmlPullParser.Event tag = parser.next();
String name = parser.getName();
String name;
int start, end;
switch (tag) {
case START_ELEMENT:
name = parser.getName();
switch (name) {
case BlockQuoteElement.ELEMENT:
start = ParserUtils.getIntegerAttributeOrThrow(parser, MarkupChildElement.ATTR_START,
@ -108,6 +109,11 @@ public class MarkupElementProvider extends ExtensionElementProvider<MarkupElemen
break;
case END_ELEMENT:
if (parser.getDepth() == initialDepth) {
return markup.build();
}
name = parser.getName();
switch (name) {
case SpanElement.ELEMENT:
markup.addSpan(spanStart, spanEnd, spanStyles);
@ -128,9 +134,6 @@ public class MarkupElementProvider extends ExtensionElementProvider<MarkupElemen
}
listBuilder.endList();
break;
case MarkupElement.ELEMENT:
return markup.build();
}
break;