[ 
https://issues.apache.org/jira/browse/WW-5452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17887168#comment-17887168
 ] 

Lukasz Lenart commented on WW-5452:
-----------------------------------

I tried to figure it out what's wrong and I'm not able to reproduce this 
problem.

Also there is one very important thing, the "parameters" used in Tag's template 
aren't the same as "HttpParameters" aka "parameters" which contains "Empty" 
parameter definition. And to be honest resolving values against HttpParameters 
from within Tags is bug and should never happen.

A tag representation should be build using its attributes not values from 
outside world, which where already passed through security checks and applied 
to the tag.

> Freemarker error with empty boolean parameter
> ---------------------------------------------
>
>                 Key: WW-5452
>                 URL: https://issues.apache.org/jira/browse/WW-5452
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Expression Language
>    Affects Versions: 7.0.0
>            Reporter: Johannes Geppert
>            Assignee: Lukasz Lenart
>            Priority: Major
>             Fix For: 7.0.0
>
>
> Switching to latest milestone release for version 7.0.0 resulted in 
> freemarker errors when building Struts jQuery Plugin.
>  
> {code:java}
> FreeMarker template error:For "#if" condition: Expected a boolean, but this 
> has evaluated to an extended_hash+string 
> (org.apache.struts2.dispatcher.Parameter$Empty wrapped into 
> f.e.b.GenericObjectModel):==> parameters.loadFromCdn!false  [in template 
> "template/jquery/head.ftl" at line 70, column 6]
> ----FTL stack trace ("~" means nesting-related):      - Failed at: #if 
> parameters.loadFromCdn!false  [in template "template/jquery/head.ftl" at line 
> 70, column 1]----
> Java stack trace (for programmers):----freemarker.core.NonBooleanException: 
> [... Exception message was already printed; see it above ...]     at 
> freemarker.core.Expression.modelToBoolean(Expression.java:195)       at 
> freemarker.core.Expression.evalToBoolean(Expression.java:178)        at 
> freemarker.core.Expression.evalToBoolean(Expression.java:163)        at 
> freemarker.core.IfBlock.accept(IfBlock.java:50)      at 
> freemarker.core.Environment.visit(Environment.java:344)      at 
> freemarker.core.Environment.visit(Environment.java:350)      at 
> freemarker.core.Environment.process(Environment.java:323)    at 
> freemarker.template.Template.process(Template.java:383)      at 
> org.apache.struts2.components.template.FreemarkerTemplateEngine.renderTemplate(FreemarkerTemplateEngine.java:154)
>     at org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:594)  
> at org.apache.struts2.components.UIBean.end(UIBean.java:553)    at 
> org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:39)
>        at 
> org.apache.jsp.WEB_002dINF.content.uncompressed.div.events_jsp._jspx_meth_sj_005fhead_005f0(events_jsp.java:178)
>      at 
> org.apache.jsp.WEB_002dINF.content.uncompressed.div.events_jsp._jspService(events_jsp.java:135)
>       at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)   
> at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
>  {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to