This issue has been created
 
 
XWiki Platform / cid:jira-generated-image-avatar-d1465e7d-81ea-42c3-b53c-67c7396a8157 XWIKI-23090 Open

Abusive modification of the cached document when copying a page

 
View issue   ยท   Add comment
 

Issue created

 
cid:jira-generated-image-avatar-bb67c443-e31f-4b98-acc4-897c1d962636 Ilie Andriuta created this issue on 10/Apr/25 14:04
 
Summary: Abusive modification of the cached document when copying a page
Issue Type: cid:jira-generated-image-avatar-d1465e7d-81ea-42c3-b53c-67c7396a8157 Bug
Affects Versions: 17.2.0
Assignee: Unassigned
Attachments: Abusive_modification_copy.png
Components: Refactoring
Created: 10/Apr/25 14:04
Environment: Windows 11 Pro, Edge 135, using an instance of XWiki 17.2.0 on MariaDB 11.6, Tomcat 10, Docker
Priority: cid:jira-generated-image-static-major-a1c6c04f-9d32-4606-984c-c52182dadfed Major
Reporter: Ilie Andriuta
Description:

Steps to reproduce

  1. Create a page structure (<server>/bin/view/aa/bb/) (it seems I could reproduce on copying pages that have at least a child)
  2. Go to page aa
  3. Copy the page (with children) to another location (e.g. Sandbox)
  4. Observe the copy 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.update(DefaultModelBridge.java:439)
    at org.xwiki.refactoring.internal.job.AbstractCopyOrMoveJob.copyOrMove(AbstractCopyOrMoveJob.java:393)
    at org.xwiki.refactoring.internal.job.CopyJob.performRefactoring(CopyJob.java:57)
    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.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.AbstractEntityJob.process(AbstractEntityJob.java:225)
    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(Unknown Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.base/java.lang.Thread.run(Unknown Source)