This issue has been created
There are 3 updates.
 
 
XWiki Platform / cid:jira-generated-image-avatar-2aa79513-cbee-40a1-aaee-ea9f64b99ae0 XWIKI-23082 Open

Abusive modification of the cached document when upgrading XWiki

 
View issue   ยท   Add comment
 

Issue created

 
cid:jira-generated-image-avatar-a14bfad9-8d31-4010-aafb-b1da0dc84581 Ilie Andriuta created this issue on 08/Apr/25 14:35
 
Summary: Abusive modification of the cached document when upgrading XWiki
Issue Type: cid:jira-generated-image-avatar-2aa79513-cbee-40a1-aaee-ea9f64b99ae0 Bug
Affects Versions: 17.2.0
Assignee: Unassigned
Created: 08/Apr/25 14:35
Environment: Windows 11 Pro, Firefox 137, using an instance of XWiki 17.2.0 on MySQL 9, Tomcat 11.0.5
Priority: cid:jira-generated-image-static-major-3bbf3381-c766-4ea5-bf96-b726fb6bc27e Major
Reporter: Ilie Andriuta
Description:

Steps to reproduce

  1. Create an older instance of XWiki (I've used for this test XWiki 11.10.13 on MySQL 9.0/ Tomcat 9.0.102)
  2. Upgrade this instance to XWiki 17.2.0 by replacing the old WAR with the new one (and using a newer Tomcat version, I've tested with Tomcat 11.0.5)
  3. Start the instance
  4. Observe the logs

Expected results

No warnings are displayed in the logs.

Actual results

The following warnings are displayed:

2025-04-08 15:24:57,517 [XWiki initialization] WARN  c.x.x.d.XWikiDocument          - Abusive modification of the cached document [xwiki:Templates.Article.Template.WebHome()]
java.lang.IllegalStateException: Abusive modification of the cached document
        at com.xpn.xwiki.doc.XWikiDocument.setMetaDataDirty(XWikiDocument.java:2457)
        at com.xpn.xwiki.doc.XWikiAttachmentContent.setContentDirty(XWikiAttachmentContent.java:233)
        at com.xpn.xwiki.doc.XWikiAttachmentContent$1.close(XWikiAttachmentContent.java:292)
        at com.xpn.xwiki.doc.XWikiAttachmentContent.setContent(XWikiAttachmentContent.java:326)
        at com.xpn.xwiki.doc.XWikiAttachmentContent.setContent(XWikiAttachmentContent.java:187)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at org.hibernate.property.access.spi.SetterMethodImpl.set(SetterMethodImpl.java:45)
        at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:694)
        at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:144)
        at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:5281)
        at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntityFromEntityEntryLoadedState(TwoPhaseLoad.java:253)
        at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:156)
        at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:126)
        at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.performTwoPhaseLoad(AbstractRowReader.java:221)
        at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.finishUp(AbstractRowReader.java:187)
        at org.hibernate.loader.plan.exec.process.internal.ResultSetProcessorImpl.extractResults(ResultSetProcessorImpl.java:96)
        at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:105)
        at org.hibernate.loader.entity.plan.AbstractLoadPlanBasedEntityLoader.load(AbstractLoadPlanBasedEntityLoader.java:285)
        at org.hibernate.persister.entity.AbstractEntityPersister.doLoad(AbstractEntityPersister.java:4550)
        at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:4540)
        at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:571)
        at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:539)
        at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:208)
        at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:327)
        at org.hibernate.event.internal.DefaultLoadEventListener.doOnLoad(DefaultLoadEventListener.java:108)
        at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:74)
        at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:118)
        at org.hibernate.internal.SessionImpl.fireLoadNoChecks(SessionImpl.java:1231)
        at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1220)
        at org.hibernate.internal.SessionImpl.load(SessionImpl.java:996)
        at org.hibernate.engine.spi.SessionDelegatorBaseImpl.load(SessionDelegatorBaseImpl.java:820)
        at com.xpn.xwiki.store.XWikiHibernateAttachmentStore.lambda$loadAttachmentContent$0(XWikiHibernateAttachmentStore.java:241)
        at com.xpn.xwiki.store.XWikiHibernateBaseStore.execute(XWikiHibernateBaseStore.java:851)
        at com.xpn.xwiki.store.XWikiHibernateBaseStore.executeRead(XWikiHibernateBaseStore.java:927)
        at com.xpn.xwiki.store.XWikiHibernateAttachmentStore.loadAttachmentContent(XWikiHibernateAttachmentStore.java:238)
        at com.xpn.xwiki.doc.XWikiAttachment.loadAttachmentContent(XWikiAttachment.java:1105)
        at com.xpn.xwiki.doc.XWikiAttachment.reloadAttachmentContent(XWikiAttachment.java:929)
        at com.xpn.xwiki.doc.XWikiAttachment.getContentInputStream(XWikiAttachment.java:907)
        at org.xwiki.extension.xar.internal.job.diff.AttachmentUnifiedDiffBuilder.contentEquals(AttachmentUnifiedDiffBuilder.java:131)
        at org.xwiki.extension.xar.internal.job.diff.AttachmentUnifiedDiffBuilder.addAttachmentDiff(AttachmentUnifiedDiffBuilder.java:90)
        at org.xwiki.extension.xar.internal.job.diff.DocumentUnifiedDiffBuilder.addAttachmentDiffs(DocumentUnifiedDiffBuilder.java:155)
        at org.xwiki.extension.xar.internal.job.diff.DocumentUnifiedDiffBuilder.diff(DocumentUnifiedDiffBuilder.java:89)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentCustomizationDetector.isCustomized(InstalledExtensionDocumentCustomizationDetector.java:95)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentCustomizationDetector.lambda$isCustomized$0(InstalledExtensionDocumentCustomizationDetector.java:86)
        at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
        at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1685)
        at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
        at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
        at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.allMatch(ReferencePipeline.java:637)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentCustomizationDetector.isCustomized(InstalledExtensionDocumentCustomizationDetector.java:86)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.updateCustomizedFlag(InstalledExtensionDocumentListener.java:132)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.addExtensionDocument(InstalledExtensionDocumentListener.java:153)
        at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1715)
        at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.forEachExtensionDocument(InstalledExtensionDocumentListener.java:166)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.addExtensionDocuments(InstalledExtensionDocumentListener.java:147)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.lambda$addExtensionDocuments$1(InstalledExtensionDocumentListener.java:140)
        at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
        at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.addExtensionDocuments(InstalledExtensionDocumentListener.java:140)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.onEvent(InstalledExtensionDocumentListener.java:115)
        at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:338)
        at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:303)
        at com.xpn.xwiki.internal.XWikiInitializerJob.runInternal(XWikiInitializerJob.java:117)
        at org.xwiki.job.AbstractJob.runInContext(AbstractJob.java:246)
        at org.xwiki.job.AbstractJob.run(AbstractJob.java:223)
        at java.base/java.lang.Thread.run(Thread.java:1583)
2025-04-08 15:24:57,743 [XWiki initialization] WARN  c.x.x.d.XWikiDocument          - Abusive modification of the cached document [xwiki:Templates.Encyclopedia.Template.WebHome()]
java.lang.IllegalStateException: Abusive modification of the cached document
        at com.xpn.xwiki.doc.XWikiDocument.setMetaDataDirty(XWikiDocument.java:2457)
        at com.xpn.xwiki.doc.XWikiAttachmentContent.setContentDirty(XWikiAttachmentContent.java:233)
        at com.xpn.xwiki.doc.XWikiAttachmentContent$1.close(XWikiAttachmentContent.java:292)
        at com.xpn.xwiki.doc.XWikiAttachmentContent.setContent(XWikiAttachmentContent.java:326)
        at com.xpn.xwiki.doc.XWikiAttachmentContent.setContent(XWikiAttachmentContent.java:187)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at org.hibernate.property.access.spi.SetterMethodImpl.set(SetterMethodImpl.java:45)
        at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:694)
        at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:144)
        at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:5281)
        at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntityFromEntityEntryLoadedState(TwoPhaseLoad.java:253)
        at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:156)
        at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:126)
        at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.performTwoPhaseLoad(AbstractRowReader.java:221)
        at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.finishUp(AbstractRowReader.java:187)
        at org.hibernate.loader.plan.exec.process.internal.ResultSetProcessorImpl.extractResults(ResultSetProcessorImpl.java:96)
        at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:105)
        at org.hibernate.loader.entity.plan.AbstractLoadPlanBasedEntityLoader.load(AbstractLoadPlanBasedEntityLoader.java:285)
        at org.hibernate.persister.entity.AbstractEntityPersister.doLoad(AbstractEntityPersister.java:4550)
        at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:4540)
        at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:571)
        at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:539)
        at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:208)
        at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:327)
        at org.hibernate.event.internal.DefaultLoadEventListener.doOnLoad(DefaultLoadEventListener.java:108)
        at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:74)
        at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:118)
        at org.hibernate.internal.SessionImpl.fireLoadNoChecks(SessionImpl.java:1231)
        at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1220)
        at org.hibernate.internal.SessionImpl.load(SessionImpl.java:996)
        at org.hibernate.engine.spi.SessionDelegatorBaseImpl.load(SessionDelegatorBaseImpl.java:820)
        at com.xpn.xwiki.store.XWikiHibernateAttachmentStore.lambda$loadAttachmentContent$0(XWikiHibernateAttachmentStore.java:241)
        at com.xpn.xwiki.store.XWikiHibernateBaseStore.execute(XWikiHibernateBaseStore.java:851)
        at com.xpn.xwiki.store.XWikiHibernateBaseStore.executeRead(XWikiHibernateBaseStore.java:927)
        at com.xpn.xwiki.store.XWikiHibernateAttachmentStore.loadAttachmentContent(XWikiHibernateAttachmentStore.java:238)
        at com.xpn.xwiki.doc.XWikiAttachment.loadAttachmentContent(XWikiAttachment.java:1105)
        at com.xpn.xwiki.doc.XWikiAttachment.reloadAttachmentContent(XWikiAttachment.java:929)
        at com.xpn.xwiki.doc.XWikiAttachment.getContentInputStream(XWikiAttachment.java:907)
        at org.xwiki.extension.xar.internal.job.diff.AttachmentUnifiedDiffBuilder.contentEquals(AttachmentUnifiedDiffBuilder.java:131)
        at org.xwiki.extension.xar.internal.job.diff.AttachmentUnifiedDiffBuilder.addAttachmentDiff(AttachmentUnifiedDiffBuilder.java:90)
        at org.xwiki.extension.xar.internal.job.diff.DocumentUnifiedDiffBuilder.addAttachmentDiffs(DocumentUnifiedDiffBuilder.java:155)
        at org.xwiki.extension.xar.internal.job.diff.DocumentUnifiedDiffBuilder.diff(DocumentUnifiedDiffBuilder.java:89)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentCustomizationDetector.isCustomized(InstalledExtensionDocumentCustomizationDetector.java:95)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentCustomizationDetector.lambda$isCustomized$0(InstalledExtensionDocumentCustomizationDetector.java:86)
        at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
        at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1685)
        at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
        at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
        at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.allMatch(ReferencePipeline.java:637)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentCustomizationDetector.isCustomized(InstalledExtensionDocumentCustomizationDetector.java:86)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.updateCustomizedFlag(InstalledExtensionDocumentListener.java:132)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.addExtensionDocument(InstalledExtensionDocumentListener.java:153)
        at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1715)
        at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.forEachExtensionDocument(InstalledExtensionDocumentListener.java:166)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.addExtensionDocuments(InstalledExtensionDocumentListener.java:147)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.lambda$addExtensionDocuments$1(InstalledExtensionDocumentListener.java:140)
        at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
        at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.addExtensionDocuments(InstalledExtensionDocumentListener.java:140)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.onEvent(InstalledExtensionDocumentListener.java:115)
        at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:338)
        at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:303)
        at com.xpn.xwiki.internal.XWikiInitializerJob.runInternal(XWikiInitializerJob.java:117)
        at org.xwiki.job.AbstractJob.runInContext(AbstractJob.java:246)
        at org.xwiki.job.AbstractJob.run(AbstractJob.java:223)
        at java.base/java.lang.Thread.run(Thread.java:1583)

 

 
 

3 updates

 
cid:jira-generated-image-avatar-a14bfad9-8d31-4010-aafb-b1da0dc84581 Changes by Ilie Andriuta on 08/Apr/25 14:44
 
Description: *Steps to reproduce*
# Create an older instance of XWiki (I've used for this test XWiki 11.10.13 on MySQL 9.0/ Tomcat 9.0.102)
# Upgrade this instance to XWiki 17.2.0 by replacing the old WAR with the new one (and using a newer Tomcat version, I've tested with Tomcat 11.0.5)
# Start the instance
and follow the Distribution Wizard
# Observe the logs
(both from console and from the browser)

*Expected results*

No warnings are displayed in the logs.

*Actual results*

The following warnings are displayed
in console :
{code:java}
2025-04-08 15:24:57,517 [XWiki initialization] WARN  c.x.x.d.XWikiDocument          - Abusive modification of the cached document [xwiki:Templates.Article.Template.WebHome()]
java.lang.IllegalStateException: Abusive modification of the cached document
        at com.xpn.xwiki.doc.XWikiDocument.setMetaDataDirty(XWikiDocument.java:2457)
        at com.xpn.xwiki.doc.XWikiAttachmentContent.setContentDirty(XWikiAttachmentContent.java:233)
        at com.xpn.xwiki.doc.XWikiAttachmentContent$1.close(XWikiAttachmentContent.java:292)
        at com.xpn.xwiki.doc.XWikiAttachmentContent.setContent(XWikiAttachmentContent.java:326)
        at com.xpn.xwiki.doc.XWikiAttachmentContent.setContent(XWikiAttachmentContent.java:187)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at org.hibernate.property.access.spi.SetterMethodImpl.set(SetterMethodImpl.java:45)
        at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:694)
        at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:144)
        at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:5281)
        at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntityFromEntityEntryLoadedState(TwoPhaseLoad.java:253)
        at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:156)
        at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:126)
        at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.performTwoPhaseLoad(AbstractRowReader.java:221)
        at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.finishUp(AbstractRowReader.java:187)
        at org.hibernate.loader.plan.exec.process.internal.ResultSetProcessorImpl.extractResults(ResultSetProcessorImpl.java:96)
        at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:105)
        at org.hibernate.loader.entity.plan.AbstractLoadPlanBasedEntityLoader.load(AbstractLoadPlanBasedEntityLoader.java:285)
        at org.hibernate.persister.entity.AbstractEntityPersister.doLoad(AbstractEntityPersister.java:4550)
        at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:4540)
        at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:571)
        at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:539)
        at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:208)
        at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:327)
        at org.hibernate.event.internal.DefaultLoadEventListener.doOnLoad(DefaultLoadEventListener.java:108)
        at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:74)
        at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:118)
        at org.hibernate.internal.SessionImpl.fireLoadNoChecks(SessionImpl.java:1231)
        at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1220)
        at org.hibernate.internal.SessionImpl.load(SessionImpl.java:996)
        at org.hibernate.engine.spi.SessionDelegatorBaseImpl.load(SessionDelegatorBaseImpl.java:820)
        at com.xpn.xwiki.store.XWikiHibernateAttachmentStore.lambda$loadAttachmentContent$0(XWikiHibernateAttachmentStore.java:241)
        at com.xpn.xwiki.store.XWikiHibernateBaseStore.execute(XWikiHibernateBaseStore.java:851)
        at com.xpn.xwiki.store.XWikiHibernateBaseStore.executeRead(XWikiHibernateBaseStore.java:927)
        at com.xpn.xwiki.store.XWikiHibernateAttachmentStore.loadAttachmentContent(XWikiHibernateAttachmentStore.java:238)
        at com.xpn.xwiki.doc.XWikiAttachment.loadAttachmentContent(XWikiAttachment.java:1105)
        at com.xpn.xwiki.doc.XWikiAttachment.reloadAttachmentContent(XWikiAttachment.java:929)
        at com.xpn.xwiki.doc.XWikiAttachment.getContentInputStream(XWikiAttachment.java:907)
        at org.xwiki.extension.xar.internal.job.diff.AttachmentUnifiedDiffBuilder.contentEquals(AttachmentUnifiedDiffBuilder.java:131)
        at org.xwiki.extension.xar.internal.job.diff.AttachmentUnifiedDiffBuilder.addAttachmentDiff(AttachmentUnifiedDiffBuilder.java:90)
        at org.xwiki.extension.xar.internal.job.diff.DocumentUnifiedDiffBuilder.addAttachmentDiffs(DocumentUnifiedDiffBuilder.java:155)
        at org.xwiki.extension.xar.internal.job.diff.DocumentUnifiedDiffBuilder.diff(DocumentUnifiedDiffBuilder.java:89)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentCustomizationDetector.isCustomized(InstalledExtensionDocumentCustomizationDetector.java:95)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentCustomizationDetector.lambda$isCustomized$0(InstalledExtensionDocumentCustomizationDetector.java:86)
        at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
        at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1685)
        at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
        at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
        at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.allMatch(ReferencePipeline.java:637)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentCustomizationDetector.isCustomized(InstalledExtensionDocumentCustomizationDetector.java:86)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.updateCustomizedFlag(InstalledExtensionDocumentListener.java:132)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.addExtensionDocument(InstalledExtensionDocumentListener.java:153)
        at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1715)
        at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.forEachExtensionDocument(InstalledExtensionDocumentListener.java:166)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.addExtensionDocuments(InstalledExtensionDocumentListener.java:147)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.lambda$addExtensionDocuments$1(InstalledExtensionDocumentListener.java:140)
        at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
        at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.addExtensionDocuments(InstalledExtensionDocumentListener.java:140)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.onEvent(InstalledExtensionDocumentListener.java:115)
        at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:338)
        at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:303)
        at com.xpn.xwiki.internal.XWikiInitializerJob.runInternal(XWikiInitializerJob.java:117)
        at org.xwiki.job.AbstractJob.runInContext(AbstractJob.java:246)
        at org.xwiki.job.AbstractJob.run(AbstractJob.java:223)
        at java.base/java.lang.Thread.run(Thread.java:1583)
2025-04-08 15:24:57,743 [XWiki initialization] WARN  c.x.x.d.XWikiDocument          - Abusive modification of the cached document [xwiki:Templates.Encyclopedia.Template.WebHome()]
java.lang.IllegalStateException: Abusive modification of the cached document
        at com.xpn.xwiki.doc.XWikiDocument.setMetaDataDirty(XWikiDocument.java:2457)
        at com.xpn.xwiki.doc.XWikiAttachmentContent.setContentDirty(XWikiAttachmentContent.java:233)
        at com.xpn.xwiki.doc.XWikiAttachmentContent$1.close(XWikiAttachmentContent.java:292)
        at com.xpn.xwiki.doc.XWikiAttachmentContent.setContent(XWikiAttachmentContent.java:326)
        at com.xpn.xwiki.doc.XWikiAttachmentContent.setContent(XWikiAttachmentContent.java:187)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at org.hibernate.property.access.spi.SetterMethodImpl.set(SetterMethodImpl.java:45)
        at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:694)
        at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:144)
        at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:5281)
        at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntityFromEntityEntryLoadedState(TwoPhaseLoad.java:253)
        at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:156)
        at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:126)
        at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.performTwoPhaseLoad(AbstractRowReader.java:221)
        at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.finishUp(AbstractRowReader.java:187)
        at org.hibernate.loader.plan.exec.process.internal.ResultSetProcessorImpl.extractResults(ResultSetProcessorImpl.java:96)
        at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:105)
        at org.hibernate.loader.entity.plan.AbstractLoadPlanBasedEntityLoader.load(AbstractLoadPlanBasedEntityLoader.java:285)
        at org.hibernate.persister.entity.AbstractEntityPersister.doLoad(AbstractEntityPersister.java:4550)
        at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:4540)
        at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:571)
        at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:539)
        at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:208)
        at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:327)
        at org.hibernate.event.internal.DefaultLoadEventListener.doOnLoad(DefaultLoadEventListener.java:108)
        at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:74)
        at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:118)
        at org.hibernate.internal.SessionImpl.fireLoadNoChecks(SessionImpl.java:1231)
        at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1220)
        at org.hibernate.internal.SessionImpl.load(SessionImpl.java:996)
        at org.hibernate.engine.spi.SessionDelegatorBaseImpl.load(SessionDelegatorBaseImpl.java:820)
        at com.xpn.xwiki.store.XWikiHibernateAttachmentStore.lambda$loadAttachmentContent$0(XWikiHibernateAttachmentStore.java:241)
        at com.xpn.xwiki.store.XWikiHibernateBaseStore.execute(XWikiHibernateBaseStore.java:851)
        at com.xpn.xwiki.store.XWikiHibernateBaseStore.executeRead(XWikiHibernateBaseStore.java:927)
        at com.xpn.xwiki.store.XWikiHibernateAttachmentStore.loadAttachmentContent(XWikiHibernateAttachmentStore.java:238)
        at com.xpn.xwiki.doc.XWikiAttachment.loadAttachmentContent(XWikiAttachment.java:1105)
        at com.xpn.xwiki.doc.XWikiAttachment.reloadAttachmentContent(XWikiAttachment.java:929)
        at com.xpn.xwiki.doc.XWikiAttachment.getContentInputStream(XWikiAttachment.java:907)
        at org.xwiki.extension.xar.internal.job.diff.AttachmentUnifiedDiffBuilder.contentEquals(AttachmentUnifiedDiffBuilder.java:131)
        at org.xwiki.extension.xar.internal.job.diff.AttachmentUnifiedDiffBuilder.addAttachmentDiff(AttachmentUnifiedDiffBuilder.java:90)
        at org.xwiki.extension.xar.internal.job.diff.DocumentUnifiedDiffBuilder.addAttachmentDiffs(DocumentUnifiedDiffBuilder.java:155)
        at org.xwiki.extension.xar.internal.job.diff.DocumentUnifiedDiffBuilder.diff(DocumentUnifiedDiffBuilder.java:89)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentCustomizationDetector.isCustomized(InstalledExtensionDocumentCustomizationDetector.java:95)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentCustomizationDetector.lambda$isCustomized$0(InstalledExtensionDocumentCustomizationDetector.java:86)
        at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
        at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1685)
        at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
        at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
        at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.allMatch(ReferencePipeline.java:637)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentCustomizationDetector.isCustomized(InstalledExtensionDocumentCustomizationDetector.java:86)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.updateCustomizedFlag(InstalledExtensionDocumentListener.java:132)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.addExtensionDocument(InstalledExtensionDocumentListener.java:153)
        at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1715)
        at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.forEachExtensionDocument(InstalledExtensionDocumentListener.java:166)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.addExtensionDocuments(InstalledExtensionDocumentListener.java:147)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.lambda$addExtensionDocuments$1(InstalledExtensionDocumentListener.java:140)
        at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
        at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.addExtensionDocuments(InstalledExtensionDocumentListener.java:140)
        at org.xwiki.extension.xar.internal.doc.InstalledExtensionDocumentListener.onEvent(InstalledExtensionDocumentListener.java:115)
        at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:338)
        at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:303)
        at com.xpn.xwiki.internal.XWikiInitializerJob.runInternal(XWikiInitializerJob.java:117)
        at org.xwiki.job.AbstractJob.runInContext(AbstractJob.java:246)
        at org.xwiki.job.AbstractJob.run(AbstractJob.java:223)
        at java.base/java.lang.Thread.run(Thread.java:1583){code}
  and there are also many warnings in the browser's DW:
{code:java}
Abusive modification of the cached document
class java.lang.IllegalStateException: Abusive modification of the cached document
    at com.xpn.xwiki.doc.XWikiDocument.setMetaDataDirty(XWikiDocument.java:2457)
    at com.xpn.xwiki.objects.BaseElement.setDirty(BaseElement.java:133)
    at com.xpn.xwiki.objects.BaseProperty.setDirty(BaseProperty.java:386)
    at com.xpn.xwiki.objects.BaseProperty.setValueDirty(BaseProperty.java:380)
    at com.xpn.xwiki.objects.BaseProperty.setValueDirty(BaseProperty.java:368)
    at com.xpn.xwiki.objects.NumberProperty.setValue(NumberProperty.java:54)
    at com.xpn.xwiki.objects.BaseProperty.apply(BaseProperty.java:342)
    at com.xpn.xwiki.objects.BaseCollection.apply(BaseCollection.java:971)
    at com.xpn.xwiki.doc.XWikiDocument.apply(XWikiDocument.java:9530)
    at com.xpn.xwiki.doc.XWikiDocument.apply(XWikiDocument.java:9430)
    at org.xwiki.extension.xar.internal.handler.packager.DocumentMergeImporter.saveDocument(DocumentMergeImporter.java:142)
    at org.xwiki.extension.xar.internal.handler.packager.DocumentMergeImporter.importDocument(DocumentMergeImporter.java:117)
    at org.xwiki.extension.xar.internal.handler.packager.Packager.importDocumentToWiki(Packager.java:230)
    at org.xwiki.extension.xar.internal.handler.packager.Packager.importXARToWiki(Packager.java:184)
    at org.xwiki.extension.xar.internal.handler.packager.Packager.importXARToWiki(Packager.java:157)
    at org.xwiki.extension.xar.internal.handler.packager.Packager.importXAR(Packager.java:148)
    at org.xwiki.extension.xar.internal.handler.XarExtensionHandler.installInternal(XarExtensionHandler.java:189)
    at org.xwiki.extension.xar.internal.handler.XarExtensionHandler.upgrade(XarExtensionHandler.java:169)
    at org.xwiki.extension.handler.internal.DefaultExtensionHandlerManager.upgrade(DefaultExtensionHandlerManager.java:139)
    at org.xwiki.extension.job.internal.AbstractExtensionJob.installExtension(AbstractExtensionJob.java:349)
    at org.xwiki.extension.job.internal.AbstractExtensionJob.applyAction(AbstractExtensionJob.java:233)
    at org.xwiki.extension.job.internal.AbstractExtensionJob.applyActions(AbstractExtensionJob.java:181)
    at org.xwiki.extension.job.internal.InstallJob.runInternal(InstallJob.java:140)
    at org.xwiki.job.AbstractJob.runInContext(AbstractJob.java:246)
    at org.xwiki.job.AbstractJob.run(AbstractJob.java:223)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
    at java.base/java.lang.Thread.run(Thread.java:1583)
{code}
Attachment: Abusive_modification_Upgrade.png
Attachment: Full_Logs_Tomcat_XWiki_11_10_13_to_17_2_0.txt