I’ve gotten in the habit of clearing the server caches on occasion after making a lot of ldap changes to force the server to pick them up right away.
I was doing that tonight and discovered a repeatable issue: Clearing the cache’s breaks the group chat service. (We’re using the default ‘conference’ service)
Immediately after clearing the cache the following error is present in the logs:
2009.02.05 18:24:52 [org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain(LocalOutgoingServerSession.java:214)] Error authenticating domain with remote server: conference.jabber.company.com java.lang.ClassCastException: org.jivesoftware.openfire.component.InternalComponentManager$RoutableComponents cannot be cast to org.jivesoftware.openfire.session.OutgoingServerSession at org.jivesoftware.openfire.spi.RoutingTableImpl.getServerRoute(RoutingTableImpl.java:548) at org.jivesoftware.openfire.SessionManager.getOutgoingServerSession(SessionManager.java:822) at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain(LocalOutgoingServerSession.java:121) at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPacket(OutgoingSessionPromise.java:239) at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(OutgoingSessionPromise.java:216) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619)
And any attempt to join a room or get a room list via any client (including spark) results in a failed error message.
The first time this happened I tried to figure out a way to “restart” the service and ended up creating a new one called “conference2”. And then a subsequent attempt to delete “conference2” resulted in “conference” being deleted and all our rooms and permissions were wiped out. I had to revert to a previous version of the database to restore the rooms.
I restored the whole thing in a dev environment and I am able to reproduce it repeatedly.
At the moment it appears there is no safe way to clear the cache without breaking chat?