Just wanted to confirm before we report this as a bug. The latest version of Openfire is not compatible with the Hazelcast plugin correct?
We are seeing an exception on the server and all access to the administration console is lost.
Can someone confirm that this is expected at this point in time and if possible provide a time frame for an update of the plugin.
The exception we are seeing is specific to the hazelcast plugin and we are seeing that pade is also crashing. We are not seeing any other error in the log.
Let me go through the logs and i will post the exact messages,
Hi @guus so the exception we are seeing is the following:
2024.03.19 11:46:37 WARN [hz.openfire.event-4]: com.hazelcast.spi.EventService - [192.168.131.80]:5701 [openfire] [3.12.5] Error while logging processing event
com.hazelcast.nio.serialization.HazelcastSerializationException: com.hazelcast.core.HazelcastInstanceNotActiveException: Hazelcast instance is not active!
at com.hazelcast.internal.serialization.impl.SerializationUtil.handleException(SerializationUtil.java:70) ~[hazelcast-3.12.5.jar:3.12.5]
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toObject(AbstractSerializationService.java:193) ~[hazelcast-3.12.5.jar:3.12.5]
at com.hazelcast.map.impl.DataAwareEntryEvent.getValue(DataAwareEntryEvent.java:90) ~[hazelcast-3.12.5.jar:3.12.5]
at org.jivesoftware.openfire.plugin.util.cache.ClusteredCache$1.entryUpdated(ClusteredCache.java:110) ~[hazelcast-2.6.1.jar:?]
at com.hazelcast.map.impl.MapListenerAdaptors$4$1.onEvent(MapListenerAdaptors.java:129) ~[hazelcast-3.12.5.jar:3.12.5]
at com.hazelcast.map.impl.MapListenerAdaptors$4$1.onEvent(MapListenerAdaptors.java:126) ~[hazelcast-3.12.5.jar:3.12.5]
at com.hazelcast.map.impl.InternalMapListenerAdapter.onEvent(InternalMapListenerAdapter.java:56) ~[hazelcast-3.12.5.jar:3.12.5]
at com.hazelcast.map.impl.InternalMapListenerAdapter.onEvent(InternalMapListenerAdapter.java:35) ~[hazelcast-3.12.5.jar:3.12.5]
at com.hazelcast.map.impl.event.MapEventPublishingService.callListener(MapEventPublishingService.java:172) ~[hazelcast-3.12.5.jar:3.12.5]
at com.hazelcast.map.impl.event.MapEventPublishingService.dispatchEntryEventData(MapEventPublishingService.java:184) ~[hazelcast-3.12.5.jar:3.12.5]
at com.hazelcast.map.impl.event.MapEventPublishingService.dispatchEvent(MapEventPublishingService.java:83) ~[hazelcast-3.12.5.jar:3.12.5]
at com.hazelcast.map.impl.event.MapEventPublishingService.dispatchEvent(MapEventPublishingService.java:47) ~[hazelcast-3.12.5.jar:3.12.5]
at com.hazelcast.map.impl.MapService.dispatchEvent(MapService.java:105) ~[hazelcast-3.12.5.jar:3.12.5]
at com.hazelcast.map.impl.MapService.dispatchEvent(MapService.java:78) ~[hazelcast-3.12.5.jar:3.12.5]
at com.hazelcast.spi.impl.eventservice.impl.EventProcessor.process(EventProcessor.java:61) ~[hazelcast-3.12.5.jar:3.12.5]
at com.hazelcast.spi.impl.eventservice.impl.RemoteEventProcessor.run(RemoteEventProcessor.java:47) [hazelcast-3.12.5.jar:3.12.5]
at com.hazelcast.util.executor.StripedExecutor$Worker.process(StripedExecutor.java:244) [hazelcast-3.12.5.jar:3.12.5]
at com.hazelcast.util.executor.StripedExecutor$Worker.run(StripedExecutor.java:227) [hazelcast-3.12.5.jar:3.12.5]
Caused by: com.hazelcast.core.HazelcastInstanceNotActiveException: Hazelcast instance is not active!
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toObject(AbstractSerializationService.java:184) ~[hazelcast-3.12.5.jar:3.12.5]
As discussed we are also losing all access to the administration console. But there is nothing logged. I will try to recreate this and post back with any interesting findings.
Ok so I took another turn on this. And when we upgrade to 4.8.1 from 4.7.5 we see this error popping up every 5 seconds
2024.03.20 09:48:52 ERROR [socket_c2s-thread-2]: org.jivesoftware.openfire.muc.spi.MultiUserChatServiceImpl - Internal server error
and then on the other node:
2024.03.20 09:57:38 ERROR [socket_c2s-thread-5]: org.jivesoftware.openfire.handler.PresenceUpdateHandler - Internal server error. Triggered by packet:
2024.03.20 09:57:39 ERROR [socket_c2s-thread-3]: org.jivesoftware.openfire.IQRouter - Could not route packet
Also for the admin console we are getting the following errors
HTTP ERROR 500 java.lang.NullPointerException: Cannot invoke "org.jivesoftware.openfire.user.User.getUsername()" because the return value of "org.jivesoftware.util.WebManager.getUser()" is null
URI: /plugin-admin.jsp
STATUS: 500
MESSAGE: java.lang.NullPointerException: Cannot invoke "org.jivesoftware.openfire.user.User.getUsername()" because the return value of "org.jivesoftware.util.WebManager.getUser()" is null
SERVLET: org.jivesoftware.openfire.admin.plugin_002dadmin_jsp
CAUSED BY: java.lang.NullPointerException: Cannot invoke "org.jivesoftware.openfire.user.User.getUsername()" because the return value of "org.jivesoftware.util.WebManager.getUser()" is null
Caused by:
java.lang.NullPointerException: Cannot invoke "org.jivesoftware.openfire.user.User.getUsername()" because the return value of "org.jivesoftware.util.WebManager.getUser()" is null
at org.jivesoftware.util.WebManager.logEvent(WebManager.java:153)
at org.jivesoftware.openfire.admin.plugin_002dadmin_jsp._jspService(plugin_002dadmin_jsp.java:292)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1419)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:73)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:49)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:174)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:292)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
at org.jivesoftware.admin.ContentSecurityPolicyFilter.doFilter(ContentSecurityPolicyFilter.java:53)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:598)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1384)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1306)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.Server.handle(Server.java:563)
at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)
at java.base/java.lang.Thread.run(Thread.java:833)
It might help to notice that we are running the cluster on hybrid auth.
Unfortunately this is in production and there is not much more i can do about this.
I will be reverting back to 4.7.5 until this is resolved.
It has been a few weeks since we started this thread but we have not received any feedback.
Today we had another go at transitioning our production environment to version 4.8.1 and again this failed. We noticed two issues. firstly the updated pade plugin (v1.8.1) does not load and on the plugin page there is a message relating to hazelcast exception.
Secondly we noticed that after a few minutes (maybe 10 minutes) we lose the ability to connect to the admin ui. We are not getting any error messages we just submit the login form the page reloads and nothing happens. Same behavior for https and http connections. Nothing is logged on the server nothing on the console of the browser.
I would like to reiterate my last question Is there anyone that has actually managed to make this work? We are running a clustered environment with hybrid auth and the pade plugin.
Any insight would be greatly appreciated. @guus@Dele_Olajide anyone??
I thank you in advance.
Hi there we were able to pinpoint the issue with the plugin and I suspect this will be fairly easy to fix. With Hazelcast 2.6.1 and the latest openfire server (4.8.1) the plugin throws exceptions when the authentication method is set to Ldap.
More specifically the exception mentions that the value of this.creationDate is null. This makes a lot of sense since the users do not come from the users table which I assume the plugin is trying to locate.
Related to this, the admin console becomes inaccessible since authentication is failing. @guus Please do let us know if you intend to work on this.
I thank you in advance.
HTTP ERROR 500 com.hazelcast.nio.serialization.HazelcastSerializationException: Failed to serialize 'org.jivesoftware.openfire.user.User'
URI: /user-summary.jsp
STATUS: 500
MESSAGE: com.hazelcast.nio.serialization.HazelcastSerializationException: Failed to serialize 'org.jivesoftware.openfire.user.User'
SERVLET: org.jivesoftware.openfire.admin.user_002dsummary_jsp
CAUSED BY: com.hazelcast.nio.serialization.HazelcastSerializationException: Failed to serialize 'org.jivesoftware.openfire.user.User'
CAUSED BY: java.lang.NullPointerException: Cannot invoke "java.util.Date.getTime()" because "this.creationDate" is null
Caused by:
com.hazelcast.nio.serialization.HazelcastSerializationException: Failed to serialize 'org.jivesoftware.openfire.user.User'
at com.hazelcast.internal.serialization.impl.SerializationUtil.handleSerializeException(SerializationUtil.java:82)
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toBytes(AbstractSerializationService.java:157)
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toBytes(AbstractSerializationService.java:133)
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toData(AbstractSerializationService.java:118)
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toData(AbstractSerializationService.java:106)
at com.hazelcast.spi.impl.NodeEngineImpl.toData(NodeEngineImpl.java:319)
at com.hazelcast.spi.AbstractDistributedObject.toData(AbstractDistributedObject.java:68)
at com.hazelcast.map.impl.proxy.MapProxyImpl.put(MapProxyImpl.java:133)
at com.hazelcast.map.impl.proxy.MapProxyImpl.put(MapProxyImpl.java:125)
at org.jivesoftware.openfire.plugin.util.cache.ClusteredCache.put(ClusteredCache.java:170)
at org.jivesoftware.openfire.plugin.util.cache.ClusteredCache.put(ClusteredCache.java:48)
at org.jivesoftware.util.cache.CacheWrapper.put(CacheWrapper.java:165)
at org.jivesoftware.util.cache.CacheWrapper.put(CacheWrapper.java:33)
at org.jivesoftware.openfire.user.UserManager.getUser(UserManager.java:283)
at org.jivesoftware.openfire.user.UserCollection$UserIterator.getNextElement(UserCollection.java:106)
at org.jivesoftware.openfire.user.UserCollection$UserIterator.hasNext(UserCollection.java:67)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:132)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at org.jivesoftware.openfire.ldap.LdapUserProvider.getUsers(LdapUserProvider.java:226)
at org.jivesoftware.openfire.ldap.LdapUserProvider.getUserCount(LdapUserProvider.java:203)
at org.jivesoftware.openfire.user.UserMultiProvider.getUserCount(UserMultiProvider.java:98)
at org.jivesoftware.openfire.user.UserManager.getUserCount(UserManager.java:315)
at org.jivesoftware.openfire.admin.user_002dsummary_jsp._jspService(user_002dsummary_jsp.java:179)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1419)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:73)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:49)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:174)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:292)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
at org.jivesoftware.admin.ContentSecurityPolicyFilter.doFilter(ContentSecurityPolicyFilter.java:53)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:598)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1384)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1306)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.Server.handle(Server.java:563)
at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:558)
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:379)
at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:146)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.NullPointerException: Cannot invoke "java.util.Date.getTime()" because "this.creationDate" is null
at org.jivesoftware.openfire.user.User.writeExternal(User.java:534)
at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$ExternalizableSerializer.write(JavaDefaultSerializers.java:208)
at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$ExternalizableSerializer.write(JavaDefaultSerializers.java:192)
at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$ExternalizableSerializer.write(JavaDefaultSerializers.java:135)
at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.write(StreamSerializerAdapter.java:43)
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toBytes(AbstractSerializationService.java:154)
Thank you very much for raising this. The only way that we can test is if we have a fixed plugin compiled and ready to load on the server.
I am not well versed in JVM or the creation of plugins for OF. Sorry. If you can provide a plugin that we can download I will give it a go.
Thanks.
The fix is applied to Openfire, not a plugin. Please keep an eye on that pull request. When it gets reviewed and merged, the fix will be automatically part of the next nightly build of Openfire. That can be used to test the fix.
Oops. There was a problem in our build scripts that prevented the RPM nightly build to automatically be uploaded to the website. That’s now fixed by @akrherz (thanks!). You can not find the RPM in Ignite Realtime: Openfire Nightly Builds