This issue has been created
 
 
XWiki Platform / cid:jira-generated-image-avatar-ac4942ba-315e-438c-87d0-1b47f4b45f17 XWIKI-23304 Open

Abusive modification of the cached document when joining and leaving a subwiki

 
View issue   ยท   Add comment
 

Issue created

 
cid:jira-generated-image-avatar-6a78d323-235d-4bec-b8cc-2a2c118ed9d8 Ilie Andriuta created this issue on 16/Jun/25 19:22
 
Summary: Abusive modification of the cached document when joining and leaving a subwiki
Issue Type: cid:jira-generated-image-avatar-ac4942ba-315e-438c-87d0-1b47f4b45f17 Bug
Affects Versions: 17.4.0
Assignee: Unassigned
Attachments: Join_Subwiki_logs.txt, Leave_Subwiki_logs.txt
Components: Wiki
Created: 16/Jun/25 19:22
Environment: Windows 11 Pro, Edge 137, using an instance of XWiki 17.4.0 on MariaDB 11.7, Tomcat 11.0.7
Priority: cid:jira-generated-image-static-major-5d332c9e-7a0a-407a-91eb-5b46bc8a59c2 Major
Reporter: Ilie Andriuta
Description:

Steps to reproduce

  1. Have a subwiki created
  2. Login with an user who is not a member of this subwiki
  3. Go to WikiManager
  4. Click "Join" from 'Actions' column
  5. Click "Yes"
  6. Observe the XWiki logs
  7. Go again to WikiManager
  8. Click "Leave" from 'Actions' column
  9. Click "Yes"
  10. Observe the XWiki logs

Expected results

No warnings are displayed in the logs.

Actual results

When joining a subwiki, the following stacktrace is displayed:

2025-06-16 20:07:38,122 [qtp211968962-39 - http://localhost:1740/xwiki/bin/view/WikiManager/JoinWiki] WARN  c.x.x.d.XWikiDocument          - Abusive modification of the cached document [subwikiglobal:XWiki.XWikiAllGroup()]
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.setOwnerDocument(BaseElement.java:522)
        at com.xpn.xwiki.objects.BaseCollection.setOwnerDocument(BaseCollection.java:994)
        at com.xpn.xwiki.objects.BaseObject.setOwnerDocument(BaseObject.java:424)
        at com.xpn.xwiki.doc.XWikiDocument.createXObject(XWikiDocument.java:2995)
        at 

[......]

org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:311)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:981)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1211)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1166)
        at java.base/java.lang.Thread.run(Thread.java:1583)

When leaving a subwiki, the following stacktrace is displayed:

2025-06-16 20:08:56,259 [qtp211968962-135 - http://localhost:1740/xwiki/bin/view/WikiManager/LeaveWiki] WARN  c.x.x.d.XWikiDocument          - Abusive modification of the cached document [subwikiglobal:XWiki.XWikiAllGroup()]
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.setXObjectsToRemove(XWikiDocument.java:6292)
        at com.xpn.xwiki.store.XWikiHibernateStore.saveXWikiDoc(XWikiHibernateStore.java:714)
        at com.xpn.xwiki.store.XWikiCacheStore.saveXWikiDoc(XWikiCacheStore.java:277)
        at com.xpn.xwiki.store.XWikiCacheStore.saveXWikiDoc(XWikiCacheStore.java:239)
        at com.xpn.xwiki.XWiki.saveDocument(XWiki.java:2113)
        at com.xpn.xwiki.XWiki.saveDocument(XWiki.java:2008)
        at org.xwiki.wiki.user.internal.DefaultWikiUserManager.saveGroupDocument(DefaultWikiUserManager.java:150)
        at org.xwiki.wiki.user.internal.DefaultWikiUserManager.removeMember(DefaultWikiUserManager.java:287)
        
[......]

         at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:981)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1211)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1166)
        at java.base/java.lang.Thread.run(Thread.java:1583)

Please find attached the full stacktraces.