Details
-
Bug
-
Resolution: Fixed
-
Major
-
17.2.0
-
None
-
Windows 11 Pro, Edge 135, using an instance of XWiki 17.2.1 on Oracle 19c, Tomcat 11.0.5, reproducible also on Jetty/HSQL demo
-
Unknown
-
N/A
-
N/A
-
Description
Steps to reproduce
- Create 2 distinct pages with at least a child, like <server>/xwiki/bin/view/aa/bb/ and <server>/xwiki/bin/view/cc/dd/
- Go to page cc and rename/ move it to page bb, with children, so the page structure will become <server>/xwiki/bin/view/aa/bb/cc/dd/
- Observe the rename log
Expected results
No warnings are displayed.
Actual results
The following warning is displayed:
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.doc.XWikiDocument.setParentReference(XWikiDocument.java:1289) at org.xwiki.refactoring.internal.DefaultModelBridge.updateParentField(DefaultModelBridge.java:359) at org.xwiki.refactoring.internal.listener.LegacyParentFieldUpdaterListener.processLocalEvent(LegacyParentFieldUpdaterListener.java:76) at org.xwiki.observation.event.AbstractLocalEventListener.onEvent(AbstractLocalEventListener.java:85) at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:338) at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:303) at org.xwiki.refactoring.internal.job.AbstractCopyOrMoveJob.copyOrMove(AbstractCopyOrMoveJob.java:398) at org.xwiki.refactoring.internal.job.MoveJob.performRefactoring(MoveJob.java:108) at org.xwiki.refactoring.internal.job.AbstractCopyOrMoveJob.maybePerformRefactoring(AbstractCopyOrMoveJob.java:351) at org.xwiki.refactoring.internal.job.AbstractCopyOrMoveJob.lambda$visitSpace$0(AbstractCopyOrMoveJob.java:298) at org.xwiki.refactoring.internal.job.AbstractEntityJob.visitDocumentNodes(AbstractEntityJob.java:295) at org.xwiki.refactoring.internal.job.AbstractEntityJob.visitDocumentAncestorStep(AbstractEntityJob.java:328) at org.xwiki.refactoring.internal.job.AbstractEntityJob.visitDocumentAncestor(AbstractEntityJob.java:313) at org.xwiki.refactoring.internal.job.AbstractEntityJob.visitDocumentNodes(AbstractEntityJob.java:293) at org.xwiki.refactoring.internal.job.AbstractEntityJob.visitDocuments(AbstractEntityJob.java:278) at org.xwiki.refactoring.internal.job.AbstractCopyOrMoveJob.visitSpace(AbstractCopyOrMoveJob.java:296) at org.xwiki.refactoring.internal.job.AbstractCopyOrMoveJob.process(AbstractCopyOrMoveJob.java:305) at org.xwiki.refactoring.internal.job.AbstractCopyOrMoveJob.process(AbstractCopyOrMoveJob.java:267) at org.xwiki.refactoring.internal.job.AbstractCopyOrMoveJob.process(AbstractCopyOrMoveJob.java:245) at org.xwiki.refactoring.internal.job.AbstractCopyOrMoveJob.process(AbstractCopyOrMoveJob.java:125) at org.xwiki.refactoring.internal.job.RenameJob.process(RenameJob.java:50) at org.xwiki.refactoring.internal.job.AbstractEntityJobWithChecks.runInternal(AbstractEntityJobWithChecks.java:69) at org.xwiki.refactoring.internal.job.AbstractCopyOrMoveJob.runInternal(AbstractCopyOrMoveJob.java:73) 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)
This is quite a tricky one, since I couldn't reproduce it every time.
Tested and reproduced also on XWiki 17.2.0 where the warning occurred twice on the same rename action (screenshot attached).