Author: berndf
Date: Thu May 31 16:59:04 2012
New Revision: 1344814
URL: http://svn.apache.org/viewvc?rev=1344814&view=rev
Log:
VYSPER-316: fix, process type="available"
Modified:
mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCPresenceHandler.java
Modified:
mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCPresenceHandler.java
URL:
http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCPresenceHandler.java?rev=1344814&r1=1344813&r2=1344814&view=diff
==============================================================================
---
mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCPresenceHandler.java
(original)
+++
mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/handler/MUCPresenceHandler.java
Thu May 31 16:59:04 2012
@@ -105,7 +105,7 @@ public class MUCPresenceHandler extends
}
String type = stanza.getType();
- if (type == null) {
+ if (type == null || type.equals("available")) {
return available(stanza, roomJid, occupantJid, nick,
serverRuntimeContext);
} else if (type.equals("unavailable")) {
return unavailable(stanza, roomJid, occupantJid, nick,
serverRuntimeContext);
@@ -145,18 +145,17 @@ public class MUCPresenceHandler extends
}
if (room.isInRoom(newOccupantJid)) {
- // user is already in room, change nick
- logger.debug("{} has requested to change nick in room {}",
newOccupantJid, roomJid);
-
// occupant is already in room
Occupant occupant = room.findOccupantByJID(newOccupantJid);
if (nick.equals(occupant.getNick())) {
// nick unchanged, change show and status
+ logger.debug("{} has updated presence in room {}",
newOccupantJid, roomJid);
for (Occupant receiver : room.getOccupants()) {
sendChangeShowStatus(occupant, receiver, room,
getInnerElementText(stanza, "show"),
getInnerElementText(stanza, "status"),
serverRuntimeContext);
}
} else {
+ logger.debug("{} has requested to change nick in room {}",
newOccupantJid, roomJid);
if (room.isInRoom(nick)) {
// user with this nick is already in room
return createPresenceErrorStanza(roomJid, newOccupantJid,
stanza.getID(), "cancel", "conflict");