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

Office connector fails to edit files if the attachment has an ampersand (&) in the filename

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Low Low
    • None
    • 5.5.2
    • None

      If you add an attachment in Confluence and this file contains a ampersand in it's name it will fail to open.

      Steps to Reproduce:

      1. Add two attachments in a Confluence Page.
        • v&p.xlsx
        • v and p.xlsx
      2. Click in Tools > Attachments.
      3. Click on Edit in office for "v and p.xlsx"
      4. The file will open accordingly.
      5. Now try the same with "v&p.xlsx".
      6. Once you Click "Ok" you will get the following:

      Work Around:

      Rename the attachment and use Source Editor Plugin so you can find the "&amp" and replace it for and or a blank space so the markups can get properly updated.
      Make a copy of the page for recovery purpose.

      Additional notes:

      You will see below error reflecting into the logs:

      caused by: java.lang.NullPointerException
      at com.benryan.servlet.webdav.AttachmentResource.checkEditPermission(AttachmentResource.java:127)
      
      2014-06-24 16:29:56,353 ERROR [http-bio-8443-exec-8] [ContainerBase.[Standalone].[localhost].[/]] log Unhandled exception occurred whilst decorating page
       -- url: /plugins/servlet/confluence/editinword/360452/attachments/v&p.xlsx | userName: admin
      java.lang.NullPointerException
      	at com.benryan.servlet.webdav.AttachmentResource.checkEditPermission(AttachmentResource.java:127)
      	at com.benryan.servlet.webdav.ResourceBuilder.buildAttachmentResource(ResourceBuilder.java:136)
      	at com.benryan.servlet.webdav.EditInWordResourceFactory.createResource(EditInWordResourceFactory.java:85)
      	at com.atlassian.confluence.extra.webdav.PluggableResourceFactory.createResource(PluggableResourceFactory.java:65)
      	at com.atlassian.confluence.extra.webdav.PluggableResourceFactory.createResource(PluggableResourceFactory.java:44)
      	at com.atlassian.confluence.extra.webdav.servlet.ConfluenceWebdavServlet.service(ConfluenceWebdavServlet.java:116)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      	at com.atlassian.plugin.servlet.DelegatingPluginServlet.service(DelegatingPluginServlet.java:42)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      	at com.atlassian.plugin.servlet.ServletModuleContainerServlet.service(ServletModuleContainerServlet.java:52)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at com.atlassian.confluence.web.filter.DebugFilter.doFilter(DebugFilter.java:50)
      	at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
      	...
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
      	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
      	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
      	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
      	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      	at java.lang.Thread.run(Thread.java:745)
      

      Environment

      Tested against below browsers:

      • IE9, IE10, IE11
      • FireFox 24, Fire Fox 28
        And had the version 3.3.4 of office connector plugin.

      And lastly against Excel 2010 and 2013.

        1. Error.PNG
          33 kB
          Deividi Luvison
        2. Error2.PNG
          41 kB
          Deividi Luvison
        3. opening.PNG
          6 kB
          Deividi Luvison

              shaffenden Steve Haffenden (Inactive)
              dluvison Deividi Luvison (Inactive)
              Votes:
              2 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated:
                Resolved: