Issue Details (XML | Word | Printable)

Key: CONF-10302
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Minor Minor
Assignee: Dave Loeng [Atlassian]
Reporter: Paul Curren [Atlassian]
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Confluence

Poor handling of null request in DashboardMacroSupport.getRequestParameter() during exports (such as HTML and PDF)

Created: 20/Dec/07 11:35 PM   Updated: 26/Mar/08 07:09 PM
Component/s: Export Page / Space, Macros -- General, PDF Generation
Affects Version/s: 2.6.0, 2.6.1, 2.6.2, 2.7
Fix Version/s: 2.7.1

Time Tracking:
Not Specified

Participants: Dave Loeng [Atlassian] and Paul Curren [Atlassian]
Since last comment: 38 weeks, 1 day ago
Resolution Date: 13/Jan/08 11:08 PM
Labels:


 Description  « Hide
The spaces list macro will throw the following exceptions during a PDF export.
java.lang.NullPointerException
        at com.atlassian.confluence.renderer.radeox.macros.DashboardMacroSupport.getRequest(DashboardMacroSupport.java:274)
        at com.atlassian.confluence.renderer.radeox.macros.DashboardMacroSupport.getRequestParameter(DashboardMacroSupport.java:266)
        at com.atlassian.confluence.renderer.radeox.macros.DashboardMacroSupport.getSpacesSelectedTab(DashboardMacroSupport.java:205)
        at com.atlassian.confluence.renderer.radeox.macros.SpacesListMacro.getHtml(SpacesListMacro.java:64)
        at com.atlassian.confluence.renderer.radeox.macros.AbstractHtmlGeneratingMacro.execute(AbstractHtmlGeneratingMacro.java:42)
        at com.atlassian.renderer.macro.RadeoxCompatibilityMacro.execute(RadeoxCompatibilityMacro.java:149)
        at com.atlassian.confluence.renderer.v2.macros.RadeoxCompatibilityMacro.execute(RadeoxCompatibilityMacro.java:27)
        at com.atlassian.renderer.v2.macro.ResourceAwareMacroDecorator.execute(ResourceAwareMacroDecorator.java:45)
        at com.atlassian.renderer.v2.components.MacroRendererComponent.processMacro(MacroRendererComponent.java:254)
        at com.atlassian.renderer.v2.components.MacroRendererComponent.makeMacro(MacroRendererComponent.java:150)
        at com.atlassian.renderer.v2.components.WikiContentRendererHandler.handleMacro(WikiContentRendererHandler.java:18)
        at com.atlassian.renderer.v2.WikiMarkupParser.makeMacro(WikiMarkupParser.java:126)
        at com.atlassian.renderer.v2.WikiMarkupParser.makeMacro(WikiMarkupParser.java:114)
        at com.atlassian.renderer.v2.WikiMarkupParser.handlePotentialMacro(WikiMarkupParser.java:99)
        at com.atlassian.renderer.v2.WikiMarkupParser.parse(WikiMarkupParser.java:60)
        at com.atlassian.renderer.v2.components.MacroRendererComponent.render(MacroRendererComponent.java:46)
        at com.atlassian.renderer.v2.V2Renderer.render(V2Renderer.java:53)
        at com.atlassian.renderer.v2.V2RendererFacade.convertWikiToXHtml(V2RendererFacade.java:57)
        at sun.reflect.GeneratedMethodAccessor248.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
        at com.atlassian.spring.interceptors.SpringProfilingInterceptor.invoke(SpringProfilingInterceptor.java:20)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)

and

	2007-12-21 16:05:29,975 ERROR [Export Space task] [renderer.v2.components.MacroRendererComponent] processMacro Unexpected error formatting macro: spaces-list
	 -- url: /spaces/doexportspace.action | userName: pcurren | action: doexportspace
	java.lang.NullPointerException
		at com.atlassian.confluence.renderer.radeox.macros.AbstractHtmlGeneratingMacro.buildBaseUrl(AbstractHtmlGeneratingMacro.java:117)
		at com.atlassian.confluence.renderer.radeox.macros.SpacesListMacro.getHtml(SpacesListMacro.java:77)
		at com.atlassian.confluence.renderer.radeox.macros.AbstractHtmlGeneratingMacro.execute(AbstractHtmlGeneratingMacro.java:42)
		at com.atlassian.renderer.macro.RadeoxCompatibilityMacro.execute(RadeoxCompatibilityMacro.java:149)
		at com.atlassian.confluence.renderer.v2.macros.RadeoxCompatibilityMacro.execute(RadeoxCompatibilityMacro.java:27)
		at com.atlassian.renderer.v2.macro.ResourceAwareMacroDecorator.execute(ResourceAwareMacroDecorator.java:45)
		at com.atlassian.renderer.v2.components.MacroRendererComponent.processMacro(MacroRendererComponent.java:254)
		at com.atlassian.renderer.v2.components.MacroRendererComponent.makeMacro(MacroRendererComponent.java:150)
		at com.atlassian.renderer.v2.components.WikiContentRendererHandler.handleMacro(WikiContentRendererHandler.java:18)
		at com.atlassian.renderer.v2.WikiMarkupParser.makeMacro(WikiMarkupParser.java:126)
		at com.atlassian.renderer.v2.WikiMarkupParser.makeMacro(WikiMarkupParser.java:114)
		at com.atlassian.renderer.v2.WikiMarkupParser.handlePotentialMacro(WikiMarkupParser.java:99)
		at com.atlassian.renderer.v2.WikiMarkupParser.parse(WikiMarkupParser.java:60)
		at com.atlassian.renderer.v2.components.MacroRendererComponent.render(MacroRendererComponent.java:46)
		at com.atlassian.renderer.v2.V2Renderer.render(V2Renderer.java:53)
		at com.atlassian.renderer.v2.V2RendererFacade.convertWikiToXHtml(V2RendererFacade.java:57)
		at sun.reflect.GeneratedMethodAccessor283.invoke(Unknown Source)
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
		at java.lang.reflect.Method.invoke(Method.java:585)
		at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
		at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
		at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
		at com.atlassian.spring.interceptors.SpringProfilingInterceptor.invoke(SpringProfilingInterceptor.java:20)
		at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
		at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
		at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
		at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
		at $Proxy40.convertWikiToXHtml(Unknown Source)
		at com.atlassian.confluence.renderer.DefaultWikiStyleRenderer.convertWikiToXHtml(DefaultWikiStyleRenderer.java:19)
		at com.atlassian.confluence.importexport.impl.WikiExporter.exportWikiToXHtml(WikiExporter.java:132)
		at com.atlassian.confluence.importexport.impl.WikiExporter.exportWikiToXslFo(WikiExporter.java:142)
		at com.atlassian.confluence.importexport.impl.WikiExporter.exportWikiToXslFo(WikiExporter.java:102)
		at sun.reflect.GeneratedMethodAccessor287.invoke(Unknown Source)
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
		at java.lang.reflect.Method.invoke(Method.java:585)
		at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:260)
		at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:207)
		at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:250)
		at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:271)

These errors boil down to the fact that the Macro expects to be called from an HTTP request but in the case of an export it is not.



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Paul Curren [Atlassian] added a comment - 21/Dec/07 01:06 AM
This commit also includes a small change to the Spaces.pdfexport.vm to decrease the memory footprint of PDF export.

Dave Loeng [Atlassian] added a comment - 13/Jan/08 11:35 PM
Review complete. Nice documentation of the cases where a null request would be present.