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

Page move fails because of a deleted page

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Medium
    • 5.7
    • 5.5.6
    • None

    Description

      NOTE: This bug report is for Confluence Server. Using Confluence Cloud? See the corresponding bug report.

      Steps to Reproduce

      1. Create a page with name 'abc'
      2. Create other page with name 'page to be moved'
      3. Insert a link to 'page to be moved' on 'abc'
      4. Delete page 'abc'
      5. Create a page with name 'abc' again
        • This operation is successful
      6. Insert a link to 'page to be moved' on 'abc' (optional)
      7. Move 'page to be moved' to somewhere else
        • This operation fails. The below appears in the atlassian-confluence.log
      2014-08-12 10:06:51,870 ERROR [http-bio-8391-exec-507] [atlassian.event.internal.AsynchronousAbleEventDispatcher] run There was an exception thrown trying to dispatch event [com.atlassian.confluence.event.events.content.page.PageMoveCompletedEvent[source=page: "Page that is failed to be moved" v.14 (11239782)]] from the invoker [SingleParameterMethodListenerInvoker{method=public void com.atlassian.confluence.links.RelatedContentRefactoringListener.handleEvent(com.atlassian.confluence.event.events.content.page.PageMoveCompletedEvent), listener=com.atlassian.confluence.links.RelatedContentRefactoringListener@5f33c0b7}]
       -- url: /confluence/pages/movepage.action | userName: PVanhoof | referer: https://wiki.test.com/confluence/pages/listpages-dirview.action?key=spaceKey&openId=11239782#selectedPageInHierarchy | action: movepage
      java.lang.RuntimeException: A page already exists with the title "Unrelated with the page you want to move" in the space with key spaceKey
          at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:54)
          at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$1$1.run(AsynchronousAbleEventDispatcher.java:48)
          at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:253)
          at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.dispatch(AsynchronousAbleEventDispatcher.java:107)
          at com.atlassian.event.internal.EventPublisherImpl.invokeListeners(EventPublisherImpl.java:160)
          at com.atlassian.event.internal.EventPublisherImpl.publish(EventPublisherImpl.java:79)
          at com.atlassian.event.legacy.LegacyEventManager.publishEvent(LegacyEventManager.java:36)
          at com.atlassian.confluence.event.ConfluenceEventManager.publishEvent(ConfluenceEventManager.java:47)
          at sun.reflect.GeneratedMethodAccessor166.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
          at java.lang.reflect.Method.invoke(Unknown Source)
          at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
          at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
          at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
          at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
          at com.sun.proxy.$Proxy26.publishEvent(Unknown Source)
          at com.atlassian.confluence.pages.DefaultPageManager.publishPageMoveEvents(DefaultPageManager.java:1150)
          at com.atlassian.confluence.pages.DefaultPageManager.movePageAsChild(DefaultPageManager.java:714)
          ...
      Caused by: com.atlassian.confluence.pages.DuplicateDataRuntimeException: A page already exists with the title "Unrelated with the page you want to move" in the space with key spaceKey
          at com.atlassian.confluence.pages.DefaultPageManager.throwIfDuplicateAbstractPageTitle(DefaultPageManager.java:1067)
          at com.atlassian.confluence.pages.DefaultPageManager.saveContentEntity(DefaultPageManager.java:992)
          at sun.reflect.GeneratedMethodAccessor1554.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
          at java.lang.reflect.Method.invoke(Unknown Source)
          at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
          at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
          at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
          at com.atlassian.spring.interceptors.SpringProfilingInterceptor.invoke(SpringProfilingInterceptor.java:16)
          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
          at com.atlassian.confluence.util.profiling.ConfluenceMonitoringMethodInterceptor.invoke(ConfluenceMonitoringMethodInterceptor.java:59)
          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
          at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
          at com.sun.proxy.$Proxy59.saveContentEntity(Unknown Source)
          at com.atlassian.confluence.links.DefaultRelatedContentRefactorer.contractAbsoluteReferencesInContent(DefaultRelatedContentRefactorer.java:429)
          at com.atlassian.confluence.links.DefaultRelatedContentRefactorer.contractAbsoluteReferencesInContent(DefaultRelatedContentRefactorer.java:392)
          at com.atlassian.confluence.links.RelatedContentRefactoringListener.handleEvent(RelatedContentRefactoringListener.java:57)
          at sun.reflect.GeneratedMethodAccessor1800.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
          at java.lang.reflect.Method.invoke(Unknown Source)
          at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:36)
          ... 326 more
      

      Workaround

      Option 1:

      1. Change title of the page to be moved.
        i.e. "Release Notes" to "Release Notes v1.0".
      2. Move page to desired location.
        The new title can be changed back to the original after completion.

      Option 2:

      1. Check the error in the logs to find the space that contains the deleted page (this may not be the same space as the page you are moving).
      2. Purge the trash in that space (documentation).
        When the trash is purged, all attachments on purged pages are permanently removed as well.

      Option 3:

      1. Clone the page via Tools > Copy and save the page.
        The title of the page will be "Copy of <page_title>".
      2. Move cloned page to desired location.
        You may rename the title page to the original after moving operation is successful by removing the "Copy of" words from the title.
      3. Delete the old page (can't be moved) to remove redundancies.

      Attachments

        Issue Links

          Activity

            People

              ttranminh Tam Tran
              dunterwurzacher Denise Unterwurzacher [Atlassian] (Inactive)
              Votes:
              12 Vote for this issue
              Watchers:
              33 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: