Fastpath + Clustering (Hazelcast) = Problem

Hi,

i tried to setup 2 Openfire servers (Let’s say Node1 & Node2) in clustered (Hazelcast) mode with Fastpath plugin.

Clustered mode seems to work - under Admin Console -> Server -> Server Manager -> Clustering i have visible 2 nodes with statistics.

Under Admin Console -> Plugins i have “Fastpath Service” and “Hazelcast Clustering Plugin” visible.

When I access Admin Console -> Fastpath Tab I receive error (see attachment for full stacktrace):

2015.06.25 09:49:18 org.jivesoftware.xmpp.workgroup.WorkgroupManager - org.jivesoftware.xmpp.workgroup.Workgroup cannot be cast to java.lang.Comparable
java.lang.ClassCastException: org.jivesoftware.xmpp.workgroup.Workgroup cannot be cast to java.lang.Comparable

It seems that that all static fields in fastpath are null (in this case the comparator:

static Comparator<Workgroup> workgroupComparator = new Comparator<Workgroup>() { //....}

is initialized to null. The same problem affects static singleton pattern (ie in WorkgroupManager, ChatSettingsManager). I was unable to connect Openfire both with Webchat and Spark IM (fastpath tab was not visible)

After simply fix (added not-null check) fastpath workgroups are not replicated between nodes.

Consider following scenario:

  • 2 Openfire servers in clustered mode (Node1 & Node2)
  • Spark IM client (Agent in Fastpath nomenclature) connected to Node1
  • In Node1 Console Admin ->Fastpath Tab->Workgroup has status “Open”
  • In Node2 Console Admin ->Fastpath Tab->Workgroup has status “Waiting for member”

Openfire version: 3.10.0

Fastpath: 4.3.1
error.after.accessing.fastpathtab.log.zip (1751 Bytes)

1 Like