This issue has been created
There is 1 update.
 
 
XWiki Platform / cid:jira-generated-image-avatar-ff95de11-a130-42da-95cd-87a687ada36f XWIKI-24055 Open

Possible ConcurrentModificationException when serializing the document archive

 
View issue   ยท   Add comment
 

Issue created

 
cid:jira-generated-image-avatar-04fe770c-6eed-46da-884c-7447ff93cbd0 Thomas Mortagne created this issue on 24/Feb/26 14:22
 
Summary: Possible ConcurrentModificationException when serializing the document archive
Issue Type: cid:jira-generated-image-avatar-ff95de11-a130-42da-95cd-87a687ada36f Bug
Affects Versions: 14.10.20
Assignee: Unassigned
Components: Old Core
Created: 24/Feb/26 14:22
Priority: cid:jira-generated-image-static-major-d9201045-4548-4b08-a43f-b07784cdf4d2 Major
Reporter: Thomas Mortagne
Description:

The following exception was reported for the Replication extension:

2026-02-19 06:52:36,271 [Replication serializing] ERROR r.i.m.DefaultReplicationSender - Failed to store the message [id = [19f419a7-1dc2-4bac-87ff-0676718e71c5], type = [entity_update], source = [<null>], date = [Thu Feb 19 06:52:36 GMT 2026], receivers = [<null>], ...] on disk. It will be lost. 
org.xwiki.contrib.replication.ReplicationException: Failed to store sender message with id [19f419a7-1dc2-4bac-87ff-0676718e71c5]
	at org.xwiki.contrib.replication.internal.message.ReplicationSenderMessageQueue.add(ReplicationSenderMessageQueue.java:230)
	at org.xwiki.contrib.replication.internal.message.DefaultReplicationSender.addSend(DefaultReplicationSender.java:148)
	at org.xwiki.contrib.replication.internal.message.DefaultReplicationSender.syncStore(DefaultReplicationSender.java:243)
	at org.xwiki.contrib.replication.internal.message.DefaultReplicationSender.store(DefaultReplicationSender.java:204)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.xwiki.contrib.replication.ReplicationException: Failed to write on disk the data of the message with id [19f419a7-1dc2-4bac-87ff-0676718e71c5]
	at org.xwiki.contrib.replication.internal.message.AbstractReplicationMessageStore.storeMessage(AbstractReplicationMessageStore.java:256)
	at org.xwiki.contrib.replication.internal.message.ReplicationSenderMessageStore.store(ReplicationSenderMessageStore.java:136)
	at org.xwiki.contrib.replication.internal.message.ReplicationSenderMessageQueue.add(ReplicationSenderMessageQueue.java:228)
	... 4 common frames omitted
Caused by: java.io.IOException: Failed to serialize the document with reference [wiki:Docs.908d75c4-0d5f-11f1-add4-bdd1bf7811a0.WebHome()] and version [8.1]
	at org.xwiki.contrib.replication.entity.internal.update.DocumentUpdateReplicationMessage.write(DocumentUpdateReplicationMessage.java:211)
	at org.xwiki.contrib.replication.internal.WrappingMutableReplicationSenderMessage.write(WrappingMutableReplicationSenderMessage.java:38)
	at org.xwiki.contrib.replication.internal.message.ReplicationSenderMessageStore.storeData(ReplicationSenderMessageStore.java:119)
	at org.xwiki.contrib.replication.internal.message.ReplicationSenderMessageStore.storeData(ReplicationSenderMessageStore.java:48)
	at org.xwiki.contrib.replication.internal.message.AbstractReplicationMessageStore.storeMessage(AbstractReplicationMessageStore.java:253)
	... 6 common frames omitted
Caused by: com.xpn.xwiki.XWikiException: Error number 2001 in 2: Error serializing document to XML
	at org.xwiki.contrib.replication.entity.internal.update.DocumentUpdateReplicationMessage.toXML(DocumentUpdateReplicationMessage.java:237)
	at org.xwiki.contrib.replication.entity.internal.update.DocumentUpdateReplicationMessage.write(DocumentUpdateReplicationMessage.java:209)
	... 10 common frames omitted
Caused by: com.xpn.xwiki.XWikiException: Error number 2001 in 2: Error serializing XML
	at com.xpn.xwiki.doc.XWikiDocument.toXML(XWikiDocument.java:5226)
	at org.xwiki.contrib.replication.entity.internal.update.DocumentUpdateReplicationMessage.toXML(DocumentUpdateReplicationMessage.java:235)
	... 11 common frames omitted
Caused by: java.util.ConcurrentModificationException: null
	at java.base/java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1208)
	at java.base/java.util.TreeMap$ValueIterator.next(TreeMap.java:1253)
	at com.xpn.xwiki.doc.rcs.XWikiRCSArchive.<init>(XWikiRCSArchive.java:77)
	at com.xpn.xwiki.doc.XWikiDocumentArchive.getArchive(XWikiDocumentArchive.java:248)
	at com.xpn.xwiki.internal.filter.input.XWikiDocumentLocaleEventGenerator.write(XWikiDocumentLocaleEventGenerator.java:129)
	at com.xpn.xwiki.internal.filter.input.XWikiDocumentLocaleEventGenerator.write(XWikiDocumentLocaleEventGenerator.java:62)
	at org.xwiki.filter.instance.internal.input.AbstractBeanEntityEventGenerator.write(AbstractBeanEntityEventGenerator.java:131)
	at com.xpn.xwiki.internal.filter.XWikiDocumentFilterUtils.exportEntity(XWikiDocumentFilterUtils.java:334)
	at com.xpn.xwiki.doc.XWikiDocument.toXML(XWikiDocument.java:5223)
	... 12 common frames omitted

It seems to suggest that the archive was modified while Replication was trying to serialize it. It's possible we are missing some cloning of the cached archive when it's modified while saving a document, or some other history writing use cases.

 
 

1 update

 
cid:jira-generated-image-avatar-04fe770c-6eed-46da-884c-7447ff93cbd0 Changes by Thomas Mortagne on 24/Feb/26 14:22
 
Description: The following exception was reported for the Replication extension (REPLICAT-231) :

{noformat}
2026-02-19 06:52:36,271 [Replication serializing] ERROR r.i.m.DefaultReplicationSender - Failed to store the message [id = [19f419a7-1dc2-4bac-87ff-0676718e71c5], type = [entity_update], source = [<null>], date = [Thu Feb 19 06:52:36 GMT 2026], receivers = [<null>], ...] on disk. It will be lost.
org.xwiki.contrib.replication.ReplicationException: Failed to store sender message with id [19f419a7-1dc2-4bac-87ff-0676718e71c5]
at org.xwiki.contrib.replication.internal.message.ReplicationSenderMessageQueue.add(ReplicationSenderMessageQueue.java:230)
at org.xwiki.contrib.replication.internal.message.DefaultReplicationSender.addSend(DefaultReplicationSender.java:148)
at org.xwiki.contrib.replication.internal.message.DefaultReplicationSender.syncStore(DefaultReplicationSender.java:243)
at org.xwiki.contrib.replication.internal.message.DefaultReplicationSender.store(DefaultReplicationSender.java:204)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.xwiki.contrib.replication.ReplicationException: Failed to write on disk the data of the message with id [19f419a7-1dc2-4bac-87ff-0676718e71c5]
at org.xwiki.contrib.replication.internal.message.AbstractReplicationMessageStore.storeMessage(AbstractReplicationMessageStore.java:256)
at org.xwiki.contrib.replication.internal.message.ReplicationSenderMessageStore.store(ReplicationSenderMessageStore.java:136)
at org.xwiki.contrib.replication.internal.message.ReplicationSenderMessageQueue.add(ReplicationSenderMessageQueue.java:228)
... 4 common frames omitted
Caused by: java.io.IOException: Failed to serialize the document with reference [wiki:Docs.908d75c4-0d5f-11f1-add4-bdd1bf7811a0.WebHome()] and version [8.1]
at org.xwiki.contrib.replication.entity.internal.update.DocumentUpdateReplicationMessage.write(DocumentUpdateReplicationMessage.java:211)
at org.xwiki.contrib.replication.internal.WrappingMutableReplicationSenderMessage.write(WrappingMutableReplicationSenderMessage.java:38)
at org.xwiki.contrib.replication.internal.message.ReplicationSenderMessageStore.storeData(ReplicationSenderMessageStore.java:119)
at org.xwiki.contrib.replication.internal.message.ReplicationSenderMessageStore.storeData(ReplicationSenderMessageStore.java:48)
at org.xwiki.contrib.replication.internal.message.AbstractReplicationMessageStore.storeMessage(AbstractReplicationMessageStore.java:253)
... 6 common frames omitted
Caused by: com.xpn.xwiki.XWikiException: Error number 2001 in 2: Error serializing document to XML
at org.xwiki.contrib.replication.entity.internal.update.DocumentUpdateReplicationMessage.toXML(DocumentUpdateReplicationMessage.java:237)
at org.xwiki.contrib.replication.entity.internal.update.DocumentUpdateReplicationMessage.write(DocumentUpdateReplicationMessage.java:209)
... 10 common frames omitted
Caused by: com.xpn.xwiki.XWikiException: Error number 2001 in 2: Error serializing XML
at com.xpn.xwiki.doc.XWikiDocument.toXML(XWikiDocument.java:5226)
at org.xwiki.contrib.replication.entity.internal.update.DocumentUpdateReplicationMessage.toXML(DocumentUpdateReplicationMessage.java:235)
... 11 common frames omitted
Caused by: java.util.ConcurrentModificationException: null
at java.base/java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1208)
at java.base/java.util.TreeMap$ValueIterator.next(TreeMap.java:1253)
at com.xpn.xwiki.doc.rcs.XWikiRCSArchive.<init>(XWikiRCSArchive.java:77)
at com.xpn.xwiki.doc.XWikiDocumentArchive.getArchive(XWikiDocumentArchive.java:248)
at com.xpn.xwiki.internal.filter.input.XWikiDocumentLocaleEventGenerator.write(XWikiDocumentLocaleEventGenerator.java:129)
at com.xpn.xwiki.internal.filter.input.XWikiDocumentLocaleEventGenerator.write(XWikiDocumentLocaleEventGenerator.java:62)
at org.xwiki.filter.instance.internal.input.AbstractBeanEntityEventGenerator.write(AbstractBeanEntityEventGenerator.java:131)
at com.xpn.xwiki.internal.filter.XWikiDocumentFilterUtils.exportEntity(XWikiDocumentFilterUtils.java:334)
at com.xpn.xwiki.doc.XWikiDocument.toXML(XWikiDocument.java:5223)
... 12 common frames omitted
{noformat}

It seems to suggest that the archive was modified while Replication was trying to serialize it. It's possible we are missing some cloning of the cached archive when it's modified while saving a document, or some other history writing use cases.