-
Bug
-
Resolution: Cannot Reproduce
-
High
-
1.0 Release Candidate 5
com.atlassian.confluence.importexport.ImportExportException: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'exportWikiToXslFo' in class com.atlassian.confluence.importexport.impl.WikiExporter threw exception class com.atlassian.confluence.renderer.WikiRenderException : org.dom4j.DocumentException: Error on line 3 of document : The element type "li" must be terminated by the matching end-tag "". Nested exception: The element type "li" must be terminated by the matching end-tag "". at com.atlassian.confluence.importexport.impl.PdfExporter.generateXslFo(PdfExporter.java:204) at com.atlassian.confluence.importexport.impl.PdfExporter.doExportEntity(PdfExporter.java:136) at com.atlassian.confluence.importexport.impl.AbstractRendererExporterImpl.exportPage(AbstractRendererExporterImpl
[CONFSERVER-816] Exporting page with {children:all=true} breaks PDF export
Well, many PDF generation bugs around the ampersand (&), lists and tables have been resolved (for v1.1) and this may be one of them...
I'm just closing this issue as we couldn't come into any explicit test case to prove this bug.
Please feel free to file another jira issue whenever you get into the failing test case.
Thank you,
Exporting Confluence's own documentation site now throws an exception. Go to
http://confluence.atlassian.com/spaces/doexportspace.action?key=DOC
and choose PDF and click export to get the following:
com.atlassian.confluence.importexport.ImportExportException: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'exportWikiToXslFo' in class com.atlassian.confluence.importexport.impl.WikiExporter threw exception class com.atlassian.confluence.renderer.WikiRenderException : org.dom4j.DocumentException: Error on line 13 of document : The content beginning "<"" is not legal markup. Perhaps the """ () character should be a letter. Nested exception: The content beginning "<"" is not legal markup. Perhaps the """ () character should be a letter. at com.atlassian.confluence.importexport.impl.PdfExporter.generateXslFo(PdfExporter.java:204) at com.atlassian.confluence.importexport.impl.PdfExporter.doExportEntity(PdfExporter.java:136) at com.atlassian.confluence.importexport.impl.AbstractRendererExporterImpl.exportSpace(AbstractRendererExporterImpl.java:110) at com.atlassian.confluence.importexport.impl.AbstractRendererExporterImpl.doExport(AbstractRendererExporterImpl.java:92) at com.atlassian.confluence.importexport.impl.PdfExporter.doExport(PdfExporter.java:80) at com.atlassian.confluence.importexport.DefaultImportExportManager.exportAs(DefaultImportExportManager.java:84) at sun.reflect.GeneratedMethodAccessor512.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at.....
The page I was attempting to export was rather simple:
(just changed the names and numbers)
=====Start of page==================================
Directory:
{children:all=true}TS Contact details:
Contact | Phone | Mobile | Fax |
---|---|---|---|
XYZ | 03 1234 56789 | 1234 123 123 | |
ABC | 03 4321 4321 | 1234 123 123 |
=====End of page==================================
Strange thing is that creating the same page separately usually works fine, is it possible that something in the history of the page is breaking it?
I get a problem with exporting as PDF also:
The following error(s) occurred:
- com.atlassian.confluence.importexport.ImportExportException: org.apache.fop.apps.FOPException: The entity name must immediately follow the '&' in the entity reference. at com.atlassian.confluence.importexport.impl.PdfExporter.generatePDF(PdfExporter.java:161) at com.atlassian.confluence.importexport.impl.PdfExporter.doExportEntity(PdfExporter.java:137) at com.atlassian.confluence.importexport.impl.AbstractRendererExporterImpl.exportPage(AbstractRendererExporterImpl.java:119) at com.atlassian.confluence.importexport.impl.AbstractRendererExporterImpl.doExport(AbstractRendererExporterImpl.java:85) at com.atlassian.confluence.importexport.impl.PdfExporter.doExport(PdfExporter.java:80) at com.atlassian.confluence.importexport.DefaultImportExportManager.exportAs(DefaultImportExportManager.java:84) at sun.reflect.GeneratedMethodAccessor1298.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.springframework.aop.framework.AopProxyUtils.invokeJoinpointUsingReflection(AopProxyUtils.java:59) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:201) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:154) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:196) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:135) at $Proxy17.exportAs(Unknown Source) at com.atlassian.confluence.importexport.actions.ExportPageAction.execute(ExportPageAction.java:74) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:171) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168) at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.intercept(DefaultWorkflowInterceptor.java:58) at com.atlassian.confluence.core.ConfluenceWorkflowInterceptor.intercept(ConfluenceWorkflowInterceptor.java:32) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37) at com.atlassian.confluence.core.ConfluenceValidationInterceptor.intercept(ConfluenceValidationInterceptor.java:18) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168) at com.atlassian.confluence.security.actions.PermissionCheckInterceptor.intercept(PermissionCheckInterceptor.java:40) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168) at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116) at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:182) at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:162) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:129) at com.atlassian.confluence.util.profiling.ProfilingPageFilter.parsePage(ProfilingPageFilter.java:36) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:61) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:161) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at com.atlassian.seraph.filter.LoginFilter.doFilter(LoginFilter.java:181) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at com.atlassian.johnson.filters.JohnsonFilter.doFilter(JohnsonFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:100) at com.atlassian.confluence.setup.SpringSessionInViewFilter.doFilterInternal(SpringSessionInViewFilter.java:32) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:57) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:132) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at com.atlassian.core.filters.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:38) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666) at java.lang.Thread.run(Thread.java:536) Caused by: org.apache.fop.apps.FOPException: The entity name must immediately follow the '&' in the entity reference. at org.apache.fop.apps.Driver.render(Driver.java:503) at org.apache.fop.apps.Driver.run(Driver.java:565) at com.atlassian.confluence.importexport.impl.PdfExporter.generatePDF(PdfExporter.java:156) ... 97 more
Well, would you please provide us a explicit example of a failure case? You can do it on the demonstration site online.
I couldn't duplicate it here. Perhaps I'm missing something...
I believe the problem is with the macro not completing properly, which has been happening since we upgraded to RC2
I couldn't reproduce this at my end: for example http://confluence.atlassian.com/display/TEST/Home has a pretty long children tree, and exports to PDF successfully.
Could you view the HTML source of the page that isn't being exported, and send me a copy of the markup that is being generated by the
{children}macro?
Sulka,
As for the documentation site itself, you're quite right... We are aware of it and I guess it's already reported. Otherwise, you can file a new jira issue to track this case (as it's something different from the originally reported bug).
Thanks in Advanced,