[ 
https://issues.apache.org/jira/browse/WW-3609?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lukasz Lenart updated WW-3609:
------------------------------

    Fix Version/s: 2.3.x
    
> Struts problem report not working properly (Freemarker template error in 
> error.ftl at line 68 in conjunction with special exception types)
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WW-3609
>                 URL: https://issues.apache.org/jira/browse/WW-3609
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions: 2.2.1
>         Environment: Sun JDK 1.6
>            Reporter: Markus Kreusch
>            Priority: Minor
>             Fix For: 2.3.x
>
>         Attachments: IndexAction.java, freemarker-template-error.html
>
>
> I've a struts 2 application where the instantiation of an action leads to a 
> org.hibernate.exception.GenericJDBCException. This exception is "expected" 
> (during development) and because development mode is enabled it should lead 
> to a "Struts Problem Report" page showing the exception details.
> The problem report page does not contain the full information of the 
> exception but a big yellow box titled "FreeMarker template error!" appears. 
> Details inside the box are:
> Method public java.lang.String 
> org.hibernate.exception.NestableRuntimeException.getMessage(int) threw an 
> exception when invoked on org.hibernate.exception.GenericJDBCException: could 
> not execute query
> The problematic instruction:
> ----------
> ==> ${msg[0]} [on line 68, column 29 in 
> org/apache/struts2/dispatcher/error.ftl]
> freemarker.template.TemplateModelException: Method public java.lang.String 
> org.hibernate.exception.NestableRuntimeException.getMessage(int) threw an 
> exception when invoked on org.hibernate.exception.GenericJDBCException: could 
> not execute query
>       at 
> freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:130)
> .... [part of the stack trace ommited]
> Caused by: java.lang.NullPointerException
>       at 
> freemarker.ext.beans.SimpleMemberModel.unwrapArguments(SimpleMemberModel.java:85)
>       at 
> freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:106)
>       ... 47 more
> I could determine the exact position of the NullPointerException by debugging 
> the code. I'm not sure why but the class SimpleMemberModel gets instantiated
> with the method 
> org.hibernate.exception.NestableRuntimeException.getMessage(int) and null for 
> the argTypes array. This leads to the NullPointerException at line 85 (int 
> typeLen = argTypes.length;). Maybe struts is "confused" because the class 
> org.hibernate.exception.NestableRuntimeException contains two methods called 
> getMessage one without and one with an int as parameter. I'll try to create a 
> minimal example to reproduce the behaviour as soon as possible.
> The main problem with this issue is that the stack trace of the former 
> exception is swallowed, not printed in the logfile or anywhere else. Please 
> check and hopefully fix this it took some hours to understand what the reason 
> of this error is.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to