|   Steps to reproduce  
                               
                              - Create an instance of XWiki 17.2.1 (tested on Oracle 19c/ Tomcat 11.0.5 and on Jetty/HSQL demo version)
  
                              - Observe the logs from the Distribution Wizard
  
                                Expected results  No warnings/ errors are displayed.  Actual results  The following warnings are displayed in Distribution Wizard logs:  
                              
                               
                              
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.setOwnerDocument(BaseElement.java:522)
    at com.xpn.xwiki.objects.BaseCollection.setOwnerDocument(BaseCollection.java:994)
    at com.xpn.xwiki.objects.BaseCollection.addField(BaseCollection.java:546)
    at com.xpn.xwiki.objects.classes.BaseClass.addField(BaseClass.java:196)
    at com.xpn.xwiki.objects.BaseCollection.safeput(BaseCollection.java:272)
    at com.xpn.xwiki.objects.BaseCollection.apply(BaseCollection.java:968)
    at com.xpn.xwiki.objects.classes.BaseClass.apply(BaseClass.java:1590)
    at com.xpn.xwiki.doc.AbstractMandatoryClassInitializer.updateDocument(AbstractMandatoryClassInitializer.java:78)
    at org.xwiki.annotation.internal.AnnotationClassDocumentInitializer.updateDocument(AnnotationClassDocumentInitializer.java:95)
    at org.xwiki.annotation.internal.CheckAnnotationClassEventListener.onEvent(CheckAnnotationClassEventListener.java:114)
    at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:338)
    at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:303)
    at com.xpn.xwiki.XWiki.afterSave(XWiki.java:2040)
    at com.xpn.xwiki.XWiki.saveDocument(XWiki.java:2130)
    at org.xwiki.extension.xar.internal.handler.packager.DocumentMergeImporter.saveDocumentSetContextUser(DocumentMergeImporter.java:208)
    at org.xwiki.extension.xar.internal.handler.packager.DocumentMergeImporter.saveDocument(DocumentMergeImporter.java:154)
    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.install(XarExtensionHandler.java:150)
    at org.xwiki.extension.handler.internal.DefaultExtensionHandlerManager.install(DefaultExtensionHandlerManager.java:85)
    at org.xwiki.extension.job.internal.AbstractExtensionJob.installExtension(AbstractExtensionJob.java:330)
    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) 
                               
                                and  
                              
                               
                              
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:413)
    at com.xpn.xwiki.objects.BaseProperty.setValueDirty(BaseProperty.java:407)
    at com.xpn.xwiki.objects.BaseStringProperty.setValue(BaseStringProperty.java:61)
    at com.xpn.xwiki.objects.BaseProperty.apply(BaseProperty.java:369)
    at com.xpn.xwiki.objects.BaseCollection.apply(BaseCollection.java:977)
    at com.xpn.xwiki.doc.XWikiDocument.apply(XWikiDocument.java:9555)
    at com.xpn.xwiki.doc.XWikiDocument.apply(XWikiDocument.java:9455)
    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.install(XarExtensionHandler.java:150)
    at org.xwiki.extension.handler.internal.DefaultExtensionHandlerManager.install(DefaultExtensionHandlerManager.java:85)
    at org.xwiki.extension.job.internal.AbstractExtensionJob.installExtension(AbstractExtensionJob.java:330)
    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) 
                               
                                   Also, on Jetty/HSQL I was able to reproduce also the following error (may have the same cause of the warnings and may be reproducible also on Tomcat, but it just didn't occur at the time I was testing):  
                              
                               
                              
A different object with the same identifier value was already associated with the session : [com.xpn.xwiki.doc.XWikiDocument#6152552094868048244] : [<null entity name>#<null>]
class com.xpn.xwiki.XWikiException: Error number 0 in 0: Error number 3201 in 3: Exception while saving document xwiki:XWiki.XWikiPreferences
    at com.xpn.xwiki.store.XWikiHibernateStore.saveXWikiDoc(XWikiHibernateStore.java:793)
    at com.xpn.xwiki.store.XWikiCacheStore.saveXWikiDoc(XWikiCacheStore.java:275)
    at com.xpn.xwiki.store.XWikiCacheStore.saveXWikiDoc(XWikiCacheStore.java:235)
    at com.xpn.xwiki.XWiki.saveDocument(XWiki.java:2113)
    at org.xwiki.extension.xar.internal.handler.packager.DocumentMergeImporter.saveDocumentSetContextUser(DocumentMergeImporter.java:208)
    at org.xwiki.extension.xar.internal.handler.packager.DocumentMergeImporter.saveDocument(DocumentMergeImporter.java:154)
    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.install(XarExtensionHandler.java:150)
    at org.xwiki.extension.handler.internal.DefaultExtensionHandlerManager.install(DefaultExtensionHandlerManager.java:85)
    at org.xwiki.extension.job.internal.AbstractExtensionJob.installExtension(AbstractExtensionJob.java:330)
    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)
Caused by: class org.hibernate.NonUniqueObjectException: A different object with the same identifier value was already associated with the session : [com.xpn.xwiki.doc.XWikiDocument#6152552094868048244] : [<null entity name>#<null>]
    at org.hibernate.engine.internal.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:700)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:287)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:230)
    at org.hibernate.event.internal.DefaultUpdateEventListener.performSaveOrUpdate(DefaultUpdateEventListener.java:38)
    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:75)
    at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:107)
    at org.hibernate.internal.SessionImpl.fireUpdate(SessionImpl.java:694)
    at org.hibernate.internal.SessionImpl.update(SessionImpl.java:687)
    at org.hibernate.internal.SessionImpl.update(SessionImpl.java:682)
    at org.hibernate.engine.spi.SessionDelegatorBaseImpl.update(SessionDelegatorBaseImpl.java:855)
    at com.xpn.xwiki.store.XWikiHibernateStore.saveXWikiDoc(XWikiHibernateStore.java:706)
    at com.xpn.xwiki.store.XWikiCacheStore.saveXWikiDoc(XWikiCacheStore.java:275)
    at com.xpn.xwiki.store.XWikiCacheStore.saveXWikiDoc(XWikiCacheStore.java:235)
    at com.xpn.xwiki.XWiki.saveDocument(XWiki.java:2113)
    at org.xwiki.extension.xar.internal.handler.packager.DocumentMergeImporter.saveDocumentSetContextUser(DocumentMergeImporter.java:208)
    at org.xwiki.extension.xar.internal.handler.packager.DocumentMergeImporter.saveDocument(DocumentMergeImporter.java:154)
    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.install(XarExtensionHandler.java:150)
    at org.xwiki.extension.handler.internal.DefaultExtensionHandlerManager.install(DefaultExtensionHandlerManager.java:85)
    at org.xwiki.extension.job.internal.AbstractExtensionJob.installExtension(AbstractExtensionJob.java:330)
    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) 
                               
                                No warnings/ errors on XWiki console.   |