There is 1 update.
 
 
XWiki Platform / cid:jira-generated-image-avatar-c9088cd9-8dc2-4449-a907-0d1110ebb11d XWIKI-23886 Open

"java.lang.ClassNotFoundException" error for xwiki-platform-netflux-api that causes the Realtime to fail on a cluster

 
View issue   ยท   Add comment
 

1 update

 
cid:jira-generated-image-avatar-69266771-7432-4f36-b2cd-46cb60d18eed Changes by Ilie Andriuta on 13/Jan/26 16:23
 
Description: *Steps to reproduce*
# Create a simple cluster with 2 instances sharing the same database (I went to {{xwiki.properties}} and set:

- {{observation.remote.enabled = true}}
- {{observation.remote.channels =
public, cluster udp }}

#  Create 1 other user (e.g. U1)
# Login on an instance with Admin
# Login on the other instance with the other user (e.g. U1)
# Edit the same page

*Expected results*
The page is edited using the Realtime mode feature.

*Actual results*
There is a lock warning on the edited page. The realtime feature doesn't work. In XWiki console there are the following errors:
{code:java}
java.lang.ClassNotFoundException: org.xwiki.netflux.internal.event.NetfluxCommandChannelEvent
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1225)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1056)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:547)
        at java.base/java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:745)
        at org.jgroups.util.ObjectInputStreamWithClassloader.resolveClass(ObjectInputStreamWithClassloader.java:37)
        at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1912)
        at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1785)
        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2101)
        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1620)
        at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2480)
        at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2327)
        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2133)
        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1620)
        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:487)
        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:445)
        at org.jgroups.util.Util.objectFromByteBuffer(Util.java:693)
        at org.jgroups.util.Util.objectFromBuffer(Util.java:678)
        at org.jgroups.util.ObjectWrapperSerializable.readFrom(ObjectWrapperSerializable.java:74)
        at org.jgroups.util.Util.readSizeStreamable(Util.java:2048)
        at org.jgroups.ObjectMessage.readPayload(ObjectMessage.java:140)
        at org.jgroups.BaseMessage.readFrom(BaseMessage.java:328)
        at org.jgroups.util.Util.readSizeStreamable(Util.java:2048)
        at org.jgroups.ObjectMessage.readPayload(ObjectMessage.java:140)
        at org.jgroups.BaseMessage.readFrom(BaseMessage.java:328)
        at org.jgroups.util.Util.readMessageBatch(Util.java:1588)
        at org.jgroups.protocols.TP.handleMessageBatch(TP.java:1227)
        at org.jgroups.protocols.TP.receive(TP.java:1200)
        at org.jgroups.protocols.UDP$PacketReceiver.run(UDP.java:808)
        at java.base/java.lang.VirtualThread.run(VirtualThread.java:456)
2026-01-13 15:06:25,215 [mcast-receiver-6,event,ILIE-ASUS-ROG-23364] ERROR o.j.p.UDP                     - JGRP000030: ILIE-ASUS-ROG-23364: failed handling incoming message
java.lang.ClassNotFoundException: org.xwiki.netflux.internal.event.EntityChannelCreatedEvent
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1225)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1056)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:547)
        at java.base/java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:745)
        at org.jgroups.util.ObjectInputStreamWithClassloader.resolveClass(ObjectInputStreamWithClassloader.java:37)
        at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1912)
        at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1785)
        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2101)
        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1620)
        at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2480)
        at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2327)
        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2133)
        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1620)
        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:487)
        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:445)
        at org.jgroups.util.Util.objectFromByteBuffer(Util.java:693)
        at org.jgroups.util.Util.objectFromBuffer(Util.java:678)
        at org.jgroups.util.ObjectWrapperSerializable.readFrom(ObjectWrapperSerializable.java:74)
        at org.jgroups.util.Util.readSizeStreamable(Util.java:2048)
        at org.jgroups.ObjectMessage.readPayload(ObjectMessage.java:140)
        at org.jgroups.BaseMessage.readFrom(BaseMessage.java:328)
        at org.jgroups.util.Util.readSizeStreamable(Util.java:2048)
        at org.jgroups.ObjectMessage.readPayload(ObjectMessage.java:140)
        at org.jgroups.BaseMessage.readFrom(BaseMessage.java:328)
        at org.jgroups.util.Util.readMessageBatch(Util.java:1588)
        at org.jgroups.protocols.TP.handleMessageBatch(TP.java:1227)
        at org.jgroups.protocols.TP.receive(TP.java:1200)
        at org.jgroups.protocols.UDP$PacketReceiver.run(UDP.java:808)
        at java.base/java.lang.VirtualThread.run(VirtualThread.java:456){code}
The errors are not occurring anymore if the instance is removed from the cluster, by reverting the settings in {{{}xwiki.properties{}}}:
- {{observation.remote.enabled = false}} or commenting it
- and commenting back {{{}observation.remote.channels =
public, cluster udp {}}}.

Please find attached the logs.