powered by Jive Software

Error with Oracle and large Rosters


I have the following problem, using Openfire 3.8.1. and Oracle database.

The reported error is: ORA-01795: maximum number of expressions in a list is 1000

I get the errors when calling Roster->deleteRosterItem(jid,boolean) for a user having > 1000 roster item.

Oracle doesn’t support more than 1000 expressions using the “IN” word. The code (at org.jivesoftware.openfire.roster.DefaultRosterItemProvider.getItems(DefaultRost erItemProvider.java:278) prepares a query with all the roster element for a given username. This can not be done on Oracle.

Is this a bug or there is another way to handle such big rosters?