Bug 135211

Summary: Jabber groupchat history is only shown for currently present members
Product: [Applications] kopete Reporter: Raymond Lewis Rebbeck <dystopianray>
Component: Jabber PluginAssignee: Kopete Developers <kopete-bugs-null>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: Fixes jabber groupchat history

Description Raymond Lewis Rebbeck 2006-10-06 18:11:24 UTC
Version:           0.12.2 (using KDE KDE 3.5.4)
Installed from:    Gentoo Packages

When entering a Jabber groupchat the history for the past few dozen lines or so that the server provides seems to be filtered so that it only shows the lines from people who are in the room at the time of joining it.

This makes the history nearly useless as significant portions of it may be missing depending on who is currently in the room.

It should show the entire history that is given, regardless of who may or may not be in the room at the time of joining it. It had this behaviour in previous versions but it seems to have been changed in one of the 0.12.x releases.
Comment 1 Raymond Lewis Rebbeck 2006-12-10 03:49:15 UTC
This issue is still occurring in 0.12.3 and I just happened to look at .xsession-errors recently and noticed that whenever I enter a jabber groupchat there is a large number of warnings printed like the following:

kopete (jabber): WARNING: [virtual void JabberGroupContact::handleIncomingMessage(const XMPP::Message&)] the contact is not in the list   : lounge@rooms.jabber.org.au/Clax
kopete (jabber): WARNING: [virtual void JabberGroupContact::handleIncomingMessage(const XMPP::Message&)] the contact is not in the list   : lounge@rooms.jabber.org.au/Aleksiss

These messages come from the jabber groupchat history and are being ignored by kopete because the users are not currently in the room.
Comment 2 Raymond Lewis Rebbeck 2006-12-10 04:19:12 UTC
After some investigation I discovered that all the code to do want I want is there and works, however somehow an erroneous 'return' was placed directly before that code so the messages were never seen. Perhaps there was a reason to skip the code, a memory leak or other issues, I don't know. Removing the return statement brings back the old behaviour and jabber groupchat history is once again working as it should. I will attach a patch.
Comment 3 Raymond Lewis Rebbeck 2006-12-10 04:21:02 UTC
Created attachment 18872 [details]
Fixes jabber groupchat history
Comment 4 Matt Rogers 2007-05-23 23:02:02 UTC
SVN commit 667758 by mattr:

commit patch from bug 135211 to fix that bug.

Show all contacts history for jabber groupchats.
Thanks for the patch!
BUG: 135211



 M  +1 -1      jabbergroupcontact.cpp  


--- branches/KDE/3.5/kdenetwork/kopete/protocols/jabber/jabbergroupcontact.cpp #667757:667758
@@ -181,7 +181,7 @@
 		if ( !subContact )
 		{
 			kdWarning (JABBER_DEBUG_GLOBAL) << k_funcinfo << "the contact is not in the list   : " <<  message.from().full()<< endl;
-			return;
+
 			/**
 			 * We couldn't find the contact for this message. That most likely means
 			 * that it originated from a history backlog or something similar and