I fixed the problem. I am novice in Java and in JiveMessenger, please review changes I made.
Index: SessionManager.java
===================================================================
— SessionManager.java (revision 3094)
+++ SessionManager.java (working copy)
@@ -1279,7 +1279,17 @@
try {
ClientSession session = (ClientSession)handback;
try {
-
// Send an unavailable presence to the user''s subscribers
-
// If presence already sent it will be ignored.
-
// Note: This gives us a chance to send an unavailable presence to the
-
// entities that the user sent directed presences
-
Presence presence = new Presence();
-
presence.setType(Presence.Type.unavailable);
-
presence.setFrom(session.getAddress());
-
presenceHandler.process(presence);
-
+/*----
ORIGINAL CODE
// Send an unavailable presence to the user’'s subscribers
// Note: This gives us a chance to send an unavailable presence to the
// entities that the user sent directed presences
@@ -1288,6 +1298,7 @@
presence.setFrom(session.getAddress());
presenceHandler.process(presence);
}
±—
ORIGINAL CODE*/
}
finally {
// Remove the session
Index: handler/PresenceUpdateHandler.java
===================================================================
— handler/PresenceUpdateHandler.java (revision 3094)
+++ handler/PresenceUpdateHandler.java (working copy)
@@ -100,7 +100,14 @@
presenceManager.userAvailable(presence);
}
else if (Presence.Type.unavailable == type) {
-
// Check if session is already unavailable
-
if (session != null && session.getPresence().isAvailable())
-
broadcastUpdate(presence.createCopy());
-
+/*----
ORIGINAL CODE
broadcastUpdate(presence.createCopy());
±—
ORIGINAL CODE */
broadcastUnavailableForDirectedPresences(presence);
if (session != null) {
session.setPresence(presence);