|Title|UploadAttachmentPopupStaysBlankWithNonDefaultTemplate
|Date|08-Sep-2005 12:54:11 EEST
|Version|2.2.28
|Submitter|194.109.220.83
|[Bug criticality]|BadBug
|Browser version|Firefox
|[Bug status]|ClosedBug
|[PageProvider] used|FileSystemProvider
|Servlet Container|Tomcat4
|Operating System|Linux Server/XP client
|URL|Upload.jsp?page=
|Java version|1.5 (sun)

When using another template then default, in this case using 'redman' the upload functionality seems to stop working. The upload popup shows up empty and no error logging is found in the jspwiki.log

In the tomcat4 log I found:

{{{java.lang.IllegalAccessError: tried to access method
com.ecyrd.jspwiki.WikiContext.<init>(Lcom/ecyrd/jspwiki/WikiEngine;Ljava/lang/String;)V
from class org.apache.jsp.Error_jsp}}}

I made the constructor with second parameter ''String'' __public__ again in ~WikiContext, cause it is used from the Error.jsp page.

Then I found this in the jspwiki.log:

{{{java.lang.NullPointerException
        at org.apache.jasper.runtime.JspRuntimeLibrary.getContextRelativePath(JspRuntimeLibrary.java:720)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:765)
        at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:359)
        at com.ecyrd.jspwiki.tags.IncludeTag.doEndTag(IncludeTag.java:68)
        at org.apache.jsp.Upload_jsp._jspService(Upload_jsp.java:111)}}}

Then I added some debug logging to the findJSP() method:

{{{    	log.debug("Called findJSP with parameters: " + 
    			"pageContext [" + pageContext + "] " +
    			"template [" + template + "] " +
    			"name [" + name + "] ");}}}

Then it shows in the log:

{{{Called findJSP with parameters: 
pageContext [org.apache.jasper.runtime.PageContextImpl@1c486f2] 
template [default] 
name [templates/redman/UploadTemplate.jsp]}}}

Two strange things here: 
* the template is ''default'' instead of ''redman''
* the location of the jsp is already resolved

To fix this bug I updated the Upload.jsp from:

{{{<wiki:Include page="<%=contentPage%>" />}}}

to:

{{{<wiki:Include page="UploadTemplate.jsp" />}}}

This seems to work, because the include tag does its own findJSP()

PeterPaulBakker

----

Closing, because we've overhauled this part completely in 2.4.

-- JanneJalkanen, 24-Sep-2006