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

When copying/pasting content from one draft to another, if it contains images, they can't convert into "storage" mode and I can't save the new page

    XMLWordPrintable

Details

    Description

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

      If you copy images from a draft page to a draft blogpost, you cannot save the blogpost.

      Steps to reproduce:

      • Create a draft page.
      • Drag some images into the page
      • DO NOT SAVE
      • Create a draft blogpost
      • Select the content on the draft page
      • Paste it into the blogpost
      • Click Save

      Result
      You get one of these:

      The following error(s) occurred:
      Failure when converting editor format to storage format.

      Expected
      It's hard to say what actually should happen when you save a page containing images whose source is only on a draft. CONF-23332 would mostly solve this problem. The simplest answer is to link straight to the image on the draft, which will only be visible to the draft's author, and only while the draft continues to exist. That would be better than the status quo, but still confusing.

      Error from logs

      2013-12-05 00:24:42,753 WARN [http-9082-19] [confluence.tinymceplugin.rest.DraftsResource] save The supplied editor content could not be converted to storage format.
       -- url: /rest/tinymce/1/drafts | userName: asrinivasan | referer: https://extranet.atlassian.com/pages/createblogpost.action?spaceKey=JIRADEV
      com.atlassian.confluence.content.render.xhtml.XhtmlException: RuntimeException occurred while transforming editor format to storage format (java.lang.UnsupportedOperationException: Cannot marshal resource identifier: DraftResourceIdentifier[draftId=2193133297])
              at com.atlassian.confluence.content.render.xhtml.editor.EditorXhtmlTransformer.transform(EditorXhtmlTransformer.java:70)
              at com.atlassian.confluence.content.render.xhtml.TransformerChain.transform(TransformerChain.java:41)
              at com.atlassian.confluence.content.render.xhtml.PluggableTransformerChain.transform(PluggableTransformerChain.java:51)
              at com.atlassian.confluence.content.render.xhtml.editor.DefaultEditorConverter.convert(DefaultEditorConverter.java:40)
              at com.atlassian.confluence.content.service.DefaultDraftService.saveDraftFromEditor(DefaultDraftService.java:90)
              at sun.reflect.GeneratedMethodAccessor1936.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:606)
              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.$Proxy116.saveDraftFromEditor(Unknown Source)
              at sun.reflect.GeneratedMethodAccessor1936.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:606)
              at com.atlassian.plugin.osgi.hostcomponents.impl.DefaultComponentRegistrar$ContextClassLoaderSettingInvocationHandler.invoke(DefaultComponentRegistrar.java:129)
              at com.sun.proxy.$Proxy241.saveDraftFromEditor(Unknown Source)
              at sun.reflect.GeneratedMethodAccessor1936.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:606)
              at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:154)
              at com.sun.proxy.$Proxy241.saveDraftFromEditor(Unknown Source)
              at com.atlassian.confluence.tinymceplugin.rest.DraftsResource.save(DraftsResource.java:105)
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              hhung Helen Hung (Inactive)
              Votes:
              2 Vote for this issue
              Watchers:
              16 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: