aboutsummaryrefslogtreecommitdiffstats
path: root/src/eu/siacs/conversations/services
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel.gultsch@rwth-aachen.de>2014-04-16 19:14:20 +0200
committerAndreas Straub <andy@strb.org>2014-04-18 00:17:34 +0200
commita04d736f75c793dc943c1e0ce7c89e1c20a3a684 (patch)
treec1013c173338bcc6913989a3781ed275b8b350e7 /src/eu/siacs/conversations/services
parent4a36abf30fb2d59934d5bfd121542fa82f5c98ce (diff)
fixed possible race conditions with presences
Diffstat (limited to 'src/eu/siacs/conversations/services')
-rw-r--r--src/eu/siacs/conversations/services/XmppConnectionService.java13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java
index a1054c403..e9f93a63c 100644
--- a/src/eu/siacs/conversations/services/XmppConnectionService.java
+++ b/src/eu/siacs/conversations/services/XmppConnectionService.java
@@ -1,6 +1,5 @@
package eu.siacs.conversations.services;
-import java.io.File;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Collections;
@@ -288,8 +287,7 @@ public class XmppConnectionService extends Service {
} else {
Contact contact = findContact(account, fromParts[0]);
if (contact == null) {
- //Log.d(LOGTAG,"contact was null");
- // most likely roster not synced
+ Log.d(LOGTAG,packet.getFrom()+ " could not be found");
return;
}
if (type == null) {
@@ -314,17 +312,19 @@ public class XmppConnectionService extends Service {
}
}
}
+ replaceContactInConversation(contact.getJid(), contact);
databaseBackend.updateContact(contact);
} else {
- // Log.d(LOGTAG,"presence without resource "+packet.toString());
+ //Log.d(LOGTAG,"presence without resource "+packet.toString());
}
} else if (type.equals("unavailable")) {
if (fromParts.length != 2) {
- // Log.d(LOGTAG,"received presence with no resource "+packet.toString());
+ contact.clearPresences();
} else {
contact.removePresence(fromParts[1]);
- databaseBackend.updateContact(contact);
}
+ replaceContactInConversation(contact.getJid(), contact);
+ databaseBackend.updateContact(contact);
} else if (type.equals("subscribe")) {
Log.d(LOGTAG,"received subscribe packet from "+packet.getFrom());
if (contact
@@ -348,7 +348,6 @@ public class XmppConnectionService extends Service {
} else {
//Log.d(LOGTAG, packet.toString());
}
- replaceContactInConversation(contact.getJid(), contact);
}
}
}