Hi,
I’m working on a web based Jabber client and would like to use OpenFire’s conversation archive to load the last 10 messages of the last conversation for example when the user logs in or reloads the page etc.
I can successfully use and to get the last conversation but doesn’t seem to work with to get the last 10 messages in the conversation. See: http://xmpp.org/extensions/xep-0059.html#last. Here are my XMPP messages:
Request the last conversation:
1
Receive the last conversation:
443
Request the last 10 messages:
10
Receive no messages:
If I drop the then I get the first 10 messages:
abcdefghij0926
Looking at the code I think the problem is here: https://github.com/igniterealtime/Openfire/blob/v3.9.3/src/plugins/monitoring/sr c/java/com/reucon/openfire/plugin/archive/xep0136/IQRetrieveHandler.java#L60
Shouldn’t it be something along the lines of:
toIndex = max - resultSet.getBefore().intValue();
fromIndex = toIndex - max;
Also there might need to be special handling as an empty element gets mapped to the long 9223372036854775807L:
https://github.com/igniterealtime/Openfire/blob/v3.9.3/src/plugins/monitoring/sr c/java/com/reucon/openfire/plugin/archive/xep0059/XmppResultSet.java#L51
Prehaps I’m misinterperating how before is supposed to work.
Thanks in advance for any help,
From Richard.