mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-12-22 20:47:57 +01:00
Fix NPE in Roster if 'from' is null
This commit is contained in:
parent
a53894a65b
commit
e3dced6eea
1 changed files with 10 additions and 4 deletions
|
@ -1233,9 +1233,12 @@ public final class Roster extends Manager {
|
|||
final XMPPConnection connection = connection();
|
||||
Presence presence = (Presence) packet;
|
||||
Jid from = presence.getFrom();
|
||||
Resourcepart fromResource = from.getResourceOrNull();
|
||||
if (fromResource == null) {
|
||||
fromResource = Resourcepart.EMPTY;
|
||||
Resourcepart fromResource = Resourcepart.EMPTY;
|
||||
if (from != null) {
|
||||
fromResource = from.getResourceOrNull();
|
||||
if (fromResource == null) {
|
||||
fromResource = Resourcepart.EMPTY;
|
||||
}
|
||||
}
|
||||
Jid key = getMapKey(from);
|
||||
Map<Resourcepart, Presence> userPresences;
|
||||
|
@ -1313,7 +1316,10 @@ public final class Roster extends Manager {
|
|||
// Error presence packets from a bare JID mean we invalidate all existing
|
||||
// presence info for the user.
|
||||
case error:
|
||||
if (!from.isBareJid()) {
|
||||
// No need to act on error presences send without from, i.e.
|
||||
// directly send from the users XMPP service, or where the from
|
||||
// address is not a bare JID
|
||||
if (from == null || !from.isBareJid()) {
|
||||
break;
|
||||
}
|
||||
userPresences = getUserPresences(key);
|
||||
|
|
Loading…
Reference in a new issue