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

Details

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

    Description

      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.

      Attachments

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

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: