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:
- Add two attachments in a Confluence Page.
- Click in Tools > Attachments.
- Click on Edit in office for "v and p.xlsx"
- The file will open accordingly.
- Now try the same with "v&p.xlsx".

- Once you Click "Ok" you will get the following:


Work Around:
Rename the attachment and use Source Editor Plugin so you can find the "&" 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.