Hello.
I set up Openfire 3.9.3 with hazelcast plugin 1.2.1 (built from Openfire 3.9.3 sources) and put two Openfire servers (say server1 and server2) behind HAProxy, configured for roundrobin balance with equal weights.
So the user is sent to server1 or server2 alternatively.
When user logs in is directed to server1, the similar exception appears on server2 console :
Exception in thread "hz.openfire.cached.thread-2" java.lang.NullPointerException at com.jivesoftware.util.cache.ClusterListener$DirectedPresenceListener.getHandlers(ClusterListener.java:474) at com.jivesoftware.util.cache.ClusterListener$DirectedPresenceListener.entryAdded(ClusterListener.java:413) at com.hazelcast.map.MapService.dispatchEvent(MapService.java:706) at com.hazelcast.map.MapService.dispatchEvent(MapService.java:69) at com.hazelcast.spi.impl.EventServiceImpl$EventPacketProcessor.process(EventServiceImpl.java:488) at com.hazelcast.spi.impl.EventServiceImpl$RemoteEventPacketProcessor.run(EventServiceImpl.java:514) at com.hazelcast.util.executor.StripedExecutor$Worker.run(StripedExecutor.java:142) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) at com.hazelcast.util.executor.PoolExecutorThreadFactory$ManagedThread.run(PoolExecutorThreadFactory.java:59)
When I log out and log in again, the user is directed to server2, and the same exception fails on server1, and so on.
Line ClusterListener:474 is:
for (DirectedPresence directedPresence : (Collection<DirectedPresence>)value) {
and value is null in this case.
The case is quite same to mentioned here: hazelcast plugin issue in version 1.2.1 | Ignite Realtime
Will there be the correction for this error and is checking value for null sufficient here?