Summary
When accessing the UPM Audit log, the following error appears:
XSRF: A mutative operation was attempted on BandanaItem within a non-mutative HTTP request: <bamboo-url>/rest/plugins/1.0/log/feed?_=1528931401957 : [null]-> ->[[0, com.atlassian.upm.core.log.PluginInstallerPluginLogAccessorImpl:log:upm_audit_log_last_retrieved, 1528931402132]]
Steps to Reproduce
- Access Administration >> Add-ons
- Click the "Audit Log" link
Expected Results
The Add-on audit log loads as expected
Actual Results
The below exception is thrown in the atlassian-bamboo.log file:
2018-06-13 23:10:02,142 ERROR [http-nio-8085-exec-7] [ReadOnlyGetMethodEnforcer] State mutation is not allowed
2018-06-13 23:10:02,142 WARN [http-nio-8085-exec-7] [XsrfUtils] XSRF: A mutative operation was attempted on BandanaItem within a non-mutative HTTP request: <bamboo-url>/rest/plugins/1.0/log/feed?_=1528931401957 : [null]->
->[[0, com.atlassian.upm.core.log.PluginInstallerPluginLogAccessorImpl:log:upm_audit_log_last_retrieved, <string> 1528931402132</string>]]
2018-06-13 23:10:02,142 ERROR [http-nio-8085-exec-7] [ThrowableExceptionMapper] Uncaught exception thrown by REST service: XSRF: A mutative operation was attempted on BandanaItem within a non-mutative HTTP request: http://eliasz.office.atlassian.com:8085/rest/plugins/1.0/log/feed?_=1528931401957 : [null]->
->[[0, com.atlassian.upm.core.log.PluginInstallerPluginLogAccessorImpl:log:upm_audit_log_last_retrieved, <string> 1528931402132 </string>]]
java.lang.IllegalStateException: XSRF: A mutative operation was attempted on BandanaItem within a non-mutative HTTP request: <bamboo-url>/rest/plugins/1.0/log/feed?_=1528931401957 : [null]->
->[[0, com.atlassian.upm.core.log.PluginInstallerPluginLogAccessorImpl:log:upm_audit_log_last_retrieved, <string> 1528931402132 </string>]]
at com.atlassian.bamboo.utils.XsrfUtils.fail(XsrfUtils.java:27)
at com.atlassian.bamboo.hibernate.ReadOnlyGetMethodEnforcer.fail(ReadOnlyGetMethodEnforcer.java:123)
at com.atlassian.bamboo.hibernate.ReadOnlyGetMethodEnforcer.failIfStateMutationNotAllowed(ReadOnlyGetMethodEnforcer.java:100)
at com.atlassian.bamboo.hibernate.ReadOnlyGetMethodEnforcer.onSave(ReadOnlyGetMethodEnforcer.java:84)
at org.springframework.orm.hibernate.support.ChainedInterceptorSupport.onSave(ChainedInterceptorSupport.java:118)
at com.atlassian.bamboo.persister.OidGenerationInterceptor.onSave(OidGenerationInterceptor.java:46)
at org.springframework.orm.hibernate.support.ChainedInterceptorSupport.onSave(ChainedInterceptorSupport.java:118)
at org.hibernate.event.internal.AbstractSaveEventListener.substituteValuesIfNecessary(AbstractSaveEventListener.java:377)
at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:257)
at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:182)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:125)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192)
at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177)
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:689)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:681)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:676)
at org.springframework.orm.hibernate5.HibernateTemplate.lambda$save$11(HibernateTemplate.java:638)
at org.springframework.orm.hibernate5.HibernateTemplate.doExecute(HibernateTemplate.java:383)
at org.springframework.orm.hibernate5.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:349)
at org.springframework.orm.hibernate5.HibernateTemplate.save(HibernateTemplate.java:636)
at com.atlassian.bamboo.bandana.BandanaItemDaoImpl.save(BandanaItemDaoImpl.java:93)
at com.atlassian.bamboo.bandana.BandanaItemDaoImpl.saveOrUpdate(BandanaItemDaoImpl.java:104)
...
Workaround
There is no workaround at this time.