aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoriNPUTmice <daniel@gultsch.de>2014-11-13 14:27:10 +0100
committeriNPUTmice <daniel@gultsch.de>2014-11-13 14:27:27 +0100
commit77ba68d61f11235f7cbe426a1c26a7f79be90aa1 (patch)
treeaae19409641f971e4f39fe04ef56cb8a8426afcc
parent61f046a675978fa53b725e6da18ed27c9f312015 (diff)
more npe checks in muc packet parser
-rw-r--r--src/main/java/eu/siacs/conversations/entities/MucOptions.java67
1 files changed, 35 insertions, 32 deletions
diff --git a/src/main/java/eu/siacs/conversations/entities/MucOptions.java b/src/main/java/eu/siacs/conversations/entities/MucOptions.java
index d7407cd5..01190374 100644
--- a/src/main/java/eu/siacs/conversations/entities/MucOptions.java
+++ b/src/main/java/eu/siacs/conversations/entities/MucOptions.java
@@ -151,39 +151,42 @@ public class MucOptions {
String type = packet.getAttribute("type");
if (type == null) {
User user = new User();
- Element item = packet.findChild("x",
- "http://jabber.org/protocol/muc#user")
- .findChild("item");
- user.setName(name);
- user.setAffiliation(item.getAttribute("affiliation"));
- user.setRole(item.getAttribute("role"));
- user.setJid(item.getAttribute("jid"));
- user.setName(name);
- if (name.equals(this.joinnick)) {
- this.isOnline = true;
- this.error = ERROR_NO_ERROR;
- self = user;
- if (aboutToRename) {
- if (renameListener != null) {
- renameListener.onRename(true);
- }
- aboutToRename = false;
- }
- } else {
- addUser(user);
- }
- if (pgp != null) {
- Element x = packet.findChild("x", "jabber:x:signed");
- if (x != null) {
- Element status = packet.findChild("status");
- String msg;
- if (status != null) {
- msg = status.getContent();
+ Element x = packet.findChild("x","http://jabber.org/protocol/muc#user");
+ if (x != null) {
+ Element item = x.findChild("item");
+ if (item != null) {
+ user.setName(name);
+ user.setAffiliation(item.getAttribute("affiliation"));
+ user.setRole(item.getAttribute("role"));
+ user.setJid(item.getAttribute("jid"));
+ user.setName(name);
+ if (name.equals(this.joinnick)) {
+ this.isOnline = true;
+ this.error = ERROR_NO_ERROR;
+ self = user;
+ if (aboutToRename) {
+ if (renameListener != null) {
+ renameListener.onRename(true);
+ }
+ aboutToRename = false;
+ }
} else {
- msg = "";
+ addUser(user);
+ }
+ if (pgp != null) {
+ Element signed = packet.findChild("x", "jabber:x:signed");
+ if (signed != null) {
+ Element status = packet.findChild("status");
+ String msg;
+ if (status != null) {
+ msg = status.getContent();
+ } else {
+ msg = "";
+ }
+ user.setPgpKeyId(pgp.fetchKeyId(account, msg,
+ signed.getContent()));
+ }
}
- user.setPgpKeyId(pgp.fetchKeyId(account, msg,
- x.getContent()));
}
}
} else if (type.equals("unavailable") && name.equals(this.joinnick)) {
@@ -366,4 +369,4 @@ public class MucOptions {
public Conversation getConversation() {
return this.conversation;
}
-} \ No newline at end of file
+}