History retrieval broken on Oracle with Openfire 3.3.3

This is a repost following the Community Process for Bug Reporting of http://www.igniterealtime.org/community/thread/27891?tstart=0

Description:

The problem I am experiencing is that after a full server restart a permanent & logging multi-user chat room no longer displays any history, it

essentially starts fresh. The data however, is still stored in the DB (Oracle 9i in our case).

Setup:

Oracle 9i

Plain Vanilla Openfire 3.3.2 or 3.3.3

Repro:

  • start Openfire

  • Create a permanent conference room (MUC)

  • Setup room to log all conversations

  • say some things in the chat room

  • stop Openfire

  • start Openfire

  • rejoin permanent conference room

  • note that the things you said are not displayed in the room

– check the DB and note that the things you said are logged in the DB MUC tables

Root Analysis:

There is a bug in the query in MUCPersistanceManager.java on Oracle.

The queries for LOAD_ALL_HISTORY and LOAD_HISTORY use nickname <> ‘’’’ in their queries. This does not work on Oracle. It does, however, work in MySQL.

If you replace nickname <> ‘’’’ with nickname is not null for both these queries you will get all the results back properly in both MySQL and Oracle.

As I have not completed (aka. signed) the Community Process I will not be posting a patch on this issue at this point in time.

Hey Evan,

Sorry that I missed this one for Openfire 3.3.3. I filed JM-1129 and checked in a fix for the next release of Openfire. Openfire 3.4.0 will be the next release and the release date is planed for the end of October.

Regards,

– Gato

Thanks Gato!

Muchly appreciated.

E/.