HTTP 500 problems with openfire 3.7.0 and clustering plugin

I have recently installed openfire 3.7.0 from the debian package, copied over my coherence-work.jar, coherence.jar, and tangasol.jar files to /usr/share/openfire/lib; installed the clustering.jar plugin using the plugin management system, and I’m receiving HTTP500 problems on the user-summary page:

HTTP ERROR 500 Problem accessing /user-summary.jsp. Reason:     org.jivesoftware.util.cache.DefaultCache cannot be cast to com.jivesoftware.util.cache.ClusteredCache Caused by: java.lang.ClassCastException: org.jivesoftware.util.cache.DefaultCache cannot be cast to com.jivesoftware.util.cache.ClusteredCache at com.jivesoftware.util.cache.CoherenceClusteredCacheFactory.getLock(CoherenceClusteredCacheFactory.java:351) at org.jivesoftware.util.cache.CacheFactory.getLock(CacheFactory.java:378) at org.jivesoftware.openfire.spi.PresenceManagerImpl.loadOfflinePresence(PresenceManagerImpl.java:551) at org.jivesoftware.openfire.spi.PresenceManagerImpl.getLastActivity(PresenceManagerImpl.java:177) at org.jivesoftware.openfire.admin.user_002dsummary_jsp._jspService(user_002dsummary_jsp.java:369) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:530) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1216) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:74) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:50) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:78) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:164) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:425) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:494) at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:182) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:933) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:362) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:867) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113) at org.eclipse.jetty.server.Server.handle(Server.java:334) at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:559) at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:992) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:541) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:203) at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:406) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:462) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436) at java.lang.Thread.run(Thread.java:662)

error log contents:

2011.03.02 16:14:58 No scheme for cache: "PEPServiceManager"
java.lang.IllegalArgumentException: No scheme for cache: "PEPServiceManager"
at com.tangosol.net.DefaultConfigurableCacheFactory.findSchemeMapping(DefaultConfigurableCacheFactory.java:476)
at com.tangosol.net.DefaultConfigurableCacheFactory.ensureCache(DefaultConfigurableCacheFactory.java:270)
at com.tangosol.net.CacheFactory.getCache(CacheFactory.java:689)
at com.tangosol.net.CacheFactory.getCache(CacheFactory.java:667)
at com.jivesoftware.util.cache.ClusteredCache.<init>(ClusteredCache.java:58)
at com.jivesoftware.util.cache.CoherenceClusteredCacheFactory.createCache(CoherenceClusteredCacheFactory.java:177)
at org.jivesoftware.util.cache.CacheFactory.joinedCluster(CacheFactory.java:674)
at org.jivesoftware.openfire.cluster.ClusterManager$1.run(ClusterManager.java:61)

warn log:

2011.03.02 16:22:51 --- Marker inserted by admin at Mar 2, 2011 4:22:51 PM ---
2011.03.02 16:22:59 Autocreating jiveID row for type '25'
2011.03.02 16:23:06 /user-summary.jsp
java.lang.ClassCastException: org.jivesoftware.util.cache.DefaultCache cannot be cast to com.jivesoftware.util.cache.ClusteredCache
at com.jivesoftware.util.cache.CoherenceClusteredCacheFactory.getLock(CoherenceClusteredCacheFactory.java:351)
at org.jivesoftware.util.cache.CacheFactory.getLock(CacheFactory.java:378)
at org.jivesoftware.openfire.spi.PresenceManagerImpl.loadOfflinePresence(PresenceManagerImpl.java:551)
at org.jivesoftware.openfire.spi.PresenceManagerImpl.getLastActivity(PresenceManagerImpl.java:177)
at org.jivesoftware.openfire.admin.user_002dsummary_jsp._jspService(user_002dsummary_jsp.java:369)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:530)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1216)
at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:74)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:50)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:78)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:164)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:425)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:494)
at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:182)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:933)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:362)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:867)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113)
at org.eclipse.jetty.server.Server.handle(Server.java:334)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:559)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:992)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:541)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:203)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:406)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:462)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)
at java.lang.Thread.run(Thread.java:662)

debug log info:

2011.03.02 16:23:03 --- Marker inserted by admin at Mar 2, 2011 4:23:03 PM ---
2011.03.02 16:23:03 JettyLog: servlet holder=
2011.03.02 16:23:03 JettyLog: chain=
2011.03.02 16:23:03 JettyLog: servlet holder=
2011.03.02 16:23:03 JettyLog: chain=
2011.03.02 16:23:03 JettyLog: servlet holder=
2011.03.02 16:23:03 JettyLog: chain=
2011.03.02 16:23:06 JettyLog: servlet holder=
2011.03.02 16:23:06 JettyLog: chain=
2011.03.02 16:23:06 000024 (01/05/00) - Connection #4 tested: OK
2011.03.02 16:23:06 000025 (01/05/00) - Connection #4 tested: OK
2011.03.02 16:23:06 000025 (01/05/00) - Connection #5 tested: OK
2011.03.02 16:23:06 Results: 1
2011.03.02 16:23:06 getUsers results: admin,.
2011.03.02 16:23:06 000026 (01/05/00) - Connection #5 tested: OK
2011.03.02 16:23:06 000026 (01/05/00) - Connection #2 tested: OK
2011.03.02 16:23:06 000027 (01/05/00) - Connection #2 tested: OK
2011.03.02 16:23:10 JettyLog: servlet holder=
2011.03.02 16:23:10 JettyLog: chain=

I have this working fine on openfire 3.6.4 and remain on that version for the time being, and will continue testing the new version with some help.

Also, of note, the detail info on the other node members for the cluster is missing. When I click on the node members in the list on the server > server manager > clustering page, nothing happens. I imagine that this is related to the above errors.

I’ve searched about in the http://issues.igniterealtime.org site, but I haven’t found anything really related to this problem. For now, it seems like I’m stuck with 3.6.4 until either the clustering.jar is updated to not require tangasol, or the caching mechanisim is re-addressed and the binding is allowed.

Clustering plugins (and a few other plugins) hasn’t been updated for 3.7.0 version. can’t say why and if it is going to be updated.

I get the same error , No scheme for cache: “PEPServiceManager”

Also when i restart my OF service when clustering is enabled i lose my server clien connection ports.