Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-58431

Readonly transaction in paginationService is causing problems for macros that write data when rendering

    XMLWordPrintable

Details

    Description

      https://pug.jira.com/wiki/rest/api/space/CONFDEV/content?expand=body.VIEW fails with :

      {
      "statusCode": 500,
      "message": "org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only"
      }
      

      Stacktrace :

      @4000000052fba75d0837bca4 org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER): Turn your S
      ession into FlushMode.AUTO or remove 'readOnly' marker from transaction definition.
      @4000000052fba75d0837c08c       at org.springframework.orm.hibernate.HibernateTemplate.checkWriteOperationAllowed(HibernateTemplate.java:1000)
      @4000000052fba75d0837eb84       at org.springframework.orm.hibernate.HibernateTemplate$11.doInHibernate(HibernateTemplate.java:590)
      @4000000052fba75d0837ef6c       at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:370)
      @4000000052fba75d0837ef6c       at org.springframework.orm.hibernate.HibernateTemplate.update(HibernateTemplate.java:588)
      @4000000052fba75d0837f354       at org.springframework.orm.hibernate.HibernateTemplate.update(HibernateTemplate.java:584)
      @4000000052fba75d0837f73c       at bucket.user.persistence.dao.hibernate.BucketPropertySetDAO.setImpl(BucketPropertySetDAO.java:35)
      @4000000052fba75d0837fb24       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      @4000000052fba75d083806dc       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      @4000000052fba75d08380ac4       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      @4000000052fba75d08380eac       at java.lang.reflect.Method.invoke(Method.java:597)
      @4000000052fba75d08380eac       at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
      @4000000052fba75d08381294       at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      @4000000052fba75d0838167c       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      @4000000052fba75d08381a64       at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
      @4000000052fba75d083831d4       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      @4000000052fba75d083835bc       at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      @4000000052fba75d083839a4       at $Proxy84.setImpl(Unknown Source)
      @4000000052fba75d083839a4       at bucket.user.propertyset.BucketPropertySet.setImpl(BucketPropertySet.java:170)
      @4000000052fba75d0838455c       at com.opensymphony.module.propertyset.AbstractPropertySet.set(AbstractPropertySet.java:570)
      @4000000052fba75d0838455c       at com.opensymphony.module.propertyset.AbstractPropertySet.setString(AbstractPropertySet.java:368)
      @4000000052fba75d08384944       at com.atlassian.confluence.core.DefaultContentPropertyManager.setStringProperty(DefaultContentPropertyManager.java:94)
      @4000000052fba75d08384d2c       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      @4000000052fba75d08385114       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      @4000000052fba75d08385114       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      @4000000052fba75d083854fc       at java.lang.reflect.Method.invoke(Method.java:597)
      @4000000052fba75d083854fc       at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
      @4000000052fba75d08385ccc       at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      @4000000052fba75d08385ccc       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      @4000000052fba75d083860b4       at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
      @4000000052fba75d08386c6c       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      @4000000052fba75d08386c6c       at com.atlassian.spring.interceptors.SpringProfilingInterceptor.invoke(SpringProfilingInterceptor.java:16)
      @4000000052fba75d08387054       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      @4000000052fba75d0838743c       at com.atlassian.confluence.util.profiling.JavaSimonMethodInterceptor.invoke(JavaSimonMethodInterceptor.java:52)
      @4000000052fba75d08387824       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      @4000000052fba75d08387c0c       at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      @4000000052fba75d08387ff4       at $Proxy60.setStringProperty(Unknown Source)
      @4000000052fba75d08387ff4       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      @4000000052fba75d083883dc       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      @4000000052fba75d083883dc       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      @4000000052fba75d083887c4       at java.lang.reflect.Method.invoke(Method.java:597)
      @4000000052fba75d08388bac       at com.atlassian.plugin.osgi.hostcomponents.impl.DefaultComponentRegistrar$ContextClassLoaderSettingInvocationHandler.invoke(DefaultComponentRegistrar.java:129)
      @4000000052fba75d0838937c       at $Proxy153.setStringProperty(Unknown Source)
      @4000000052fba75d08389764       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      @4000000052fba75d08389764       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      @4000000052fba75d08389b4c       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      @4000000052fba75d08389f34       at java.lang.reflect.Method.invoke(Method.java:597)
      @4000000052fba75d0838a31c       at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:154)
      @4000000052fba75d0838a31c       at $Proxy153.setStringProperty(Unknown Source)
      @4000000052fba75d0838a704       at com.atlassian.confluence.extra.calendar3.eventmacro.EventMacroManager.setAllowAnonymous(EventMacroManager.java:432)
      @4000000052fba75d0838c25c       at com.atlassian.confluence.extra.calendar3.eventmacro.EventMacro.persistMacroParameters(EventMacro.java:241)
      @4000000052fba75d0838c25c       at com.atlassian.confluence.extra.calendar3.eventmacro.EventMacro.execute(EventMacro.java:126)
      ....
      @4000000052fba75d083904c4       at com.atlassian.confluence.content.render.xhtml.DeviceTypeAwareRenderer.render(DeviceTypeAwareRenderer.java:56)
      @4000000052fba75d08390c94       at com.atlassian.confluence.api.impl.service.content.ContentBodyConversionServiceImpl.getConvertedValue(ContentBodyConversionServiceImpl.java:149)
      @4000000052fba75d0839107c       at com.atlassian.confluence.api.impl.service.content.ContentBodyConversionServiceImpl.convert(ContentBodyConversionServiceImpl.java:78)
      @4000000052fba75d08391c34       at com.atlassian.confluence.api.impl.service.content.factory.ContentBodyFactory.makeContentBody(ContentBodyFactory.java:101)
      @4000000052fba75d0839201c       at com.atlassian.confluence.api.impl.service.content.factory.ContentBodyFactory.makeContentBodies(ContentBodyFactory.java:83)
      @4000000052fba75d0839201c       at com.atlassian.confluence.api.impl.service.content.factory.ContentFactory.makeContentBodies(ContentFactory.java:98)
      @4000000052fba75d083927ec       at com.atlassian.confluence.api.impl.service.content.factory.ContentFactory.buildFrom(ContentFactory.java:84)
      @4000000052fba75d08392bd4       at com.atlassian.confluence.api.impl.service.content.factory.ContentFactory.buildFrom(ContentFactory.java:37)
      @4000000052fba75d08392bd4       at com.atlassian.confluence.api.impl.service.content.factory.ModelFactory$1.apply(ModelFactory.java:37)
      @4000000052fba75d083933a4       at com.google.common.collect.Iterators$8.next(Iterators.java:782)
      @4000000052fba75d083933a4       at com.google.common.collect.ImmutableCollection$Builder.addAll(ImmutableCollection.java:323)
      @4000000052fba75d0839378c       at com.google.common.collect.ImmutableList$Builder.addAll(ImmutableList.java:601)
      @4000000052fba75d0839378c       at com.atlassian.confluence.api.model.pagination.PageResponseImpl$Builder.addAll(PageResponseImpl.java:114)
      @4000000052fba75d0839472c       at com.atlassian.confluence.api.model.pagination.PageResponseImpl.from(PageResponseImpl.java:63)
      @4000000052fba75d08394b14       at com.atlassian.confluence.api.impl.pagination.PaginationServiceImpl$1.doInTransaction(PaginationServiceImpl.java:112)
      @4000000052fba75d08394b14       at com.atlassian.confluence.api.impl.pagination.PaginationServiceImpl$1.doInTransaction(PaginationServiceImpl.java:103)
      @4000000052fba75d083952e4       at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
      @4000000052fba75d083956cc       at com.atlassian.confluence.api.impl.pagination.PaginationServiceImpl.doRequestInTransaction(PaginationServiceImpl.java:102)
      @4000000052fba75d083956cc       at com.atlassian.confluence.api.impl.pagination.PaginationServiceImpl.doPaginationRequest(PaginationServiceImpl.java:60)
      @4000000052fba75d08395e9c       at com.atlassian.confluence.api.impl.service.content.SpaceServiceImpl$SpaceContentImpl.fetchPageOfContent(SpaceServiceImpl.java:158)
      @4000000052fba75d08396284       at com.atlassian.confluence.api.impl.service.content.SpaceServiceImpl$SpaceContentImpl.fetchMany(SpaceServiceImpl.java:148)
      @4000000052fba75d08396284       at com.atlassian.confluence.api.impl.service.content.SpaceServiceImpl$SpaceContentImpl.fetchMappedByType(SpaceServiceImpl.java:95)
      @4000000052fba75d08396e3c       at com.confluence.confluence.rest.resources.SpaceResource.contents(SpaceResource.java:105)
      

      Possibly a blocker for the release

      Attachments

        Activity

          People

            slancashire Steve Lancashire (Inactive)
            slancashire Steve Lancashire (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: