Uploaded image for project: 'Replication'
  1. Replication
  2. REPLICAT-231

Possible ConcurrentModificationException when serializing sending a complete update

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 2.3.8
    • 2.3.7
    • Entity
    • None
    • Unknown

    Description

      The following was found in the log:

      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 XWikiDocumentArchive in the document cache was modified while Replication was serializing it.

      This is clearly an XWiki Standard bug (REPLICAT-231), but to be safe we could make sure to clone the XWikiDocument before serializing it.

      Attachments

        Issue Links

          Activity

            People

              tmortagne Thomas Mortagne
              tmortagne Thomas Mortagne
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: