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

Yasser Zamani updated WW-5125:
------------------------------
    Priority: Minor  (was: Major)

> forbidden name attribute values (size, clone...?) in <s:textfield> using the 
> default theme
> ------------------------------------------------------------------------------------------
>
>                 Key: WW-5125
>                 URL: https://issues.apache.org/jira/browse/WW-5125
>             Project: Struts 2
>          Issue Type: Improvement
>    Affects Versions: 2.5.26
>            Reporter: Patrice DUROUX
>            Priority: Minor
>             Fix For: 2.6
>
>
> Hi,
> It is easy to reproduce running an (empty) action resulting a simple JSP page 
> like this:
> {code:java}
> <%@ taglib prefix="s" uri="/struts-tags"%>
> <!DOCTYPE html>
> <html lang="en">
> <head>
> </head>
> <body>
> <h1>Struts bug2</h1>
> <s:textfield theme="simple" name="clone" />
> <s:textfield name="clone" />
> </body>
> {code}
> The first textfield is rendered but the second throws an exception like:
> {code:java}
> SEVERE: Error executing FreeMarker template
> FreeMarker template error:
> Getting the number of items or listing the items is not supported on this 
> method+sequence (wrapper: f.e.b.SimpleMethodModel) value, because this value 
> wraps the following Java method, not a real listable value: public 
> java.lang.Object java.util.HashMap.clone()----
> Tip: Maybe you should to call this method first and then do something with 
> its return value.
> ----
> Tip: obj.someMethod(i) and obj.someMethod[i] does the same for this method, 
> hence it's a "+sequence".
> --------
> FTL stack trace ("~" means nesting-related):
>       - Failed at: #list fieldErrors[parameters.name] as...  [in template 
> "template/~~~xhtml/controlheader-core.ftl" at line 28, column 1]
>       - Reached through: #include "/${parameters.templateDir}/...  [in 
> template "template/~~~xhtml/controlheader.ftl" at line 21, column 1]
>       - Reached through: #include "/${parameters.templateDir}/...  [in 
> template "template/xhtml/text.ftl" at line 21, column 1]
> ----Java stack trace (for programmers):
> ----
> freemarker.core._TemplateModelException: [... Exception message was already 
> printed; see it above ...]
>       at 
> freemarker.ext.beans.SimpleMethodModel.size(SimpleMethodModel.java:95)
>       at 
> freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:312)
>       at 
> freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
>       at 
> freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
>       at freemarker.core.Environment.visitIteratorBlock(Environment.java:644)
>       at 
> freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
>       at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
>       at freemarker.core.Environment.visit(Environment.java:334)
>       at freemarker.core.Environment.visit(Environment.java:340)
>       at freemarker.core.Environment.visit(Environment.java:340)
>       at freemarker.core.Environment.visit(Environment.java:340)
>       at freemarker.core.Environment.include(Environment.java:2925)
>       at freemarker.core.Include.accept(Include.java:171)
>       at freemarker.core.Environment.visit(Environment.java:334)
>       at freemarker.core.Environment.visit(Environment.java:340)
>       at freemarker.core.Environment.include(Environment.java:2925)
>       at freemarker.core.Include.accept(Include.java:171)
>       at freemarker.core.Environment.visit(Environment.java:334)
>       at freemarker.core.Environment.visit(Environment.java:340)
>       at freemarker.core.Environment.process(Environment.java:313)
>       at freemarker.template.Template.process(Template.java:383)
>       at 
> org.apache.struts2.components.template.FreemarkerTemplateEngine.renderTemplate(FreemarkerTemplateEngine.java:149)
>       at org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:580)
>       at org.apache.struts2.components.UIBean.end(UIBean.java:536)
>       at 
> org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:39)
>       at 
> org.apache.jsp.WEB_002dINF.bug2_jsp._jspx_meth_s_005ftextfield_005f1(bug2_jsp.java:201)
>       at org.apache.jsp.WEB_002dINF.bug2_jsp._jspService(bug2_jsp.java:139)
>       at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
>       at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:467)
>       at 
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:378)
>       at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:326)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>       at 
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:710)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:457)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
>       at 
> org.apache.struts2.result.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:169)
>       at 
> org.apache.struts2.result.StrutsResultSupport.execute(StrutsResultSupport.java:206)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:375)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:279)
>       at 
> org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:250)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:179)
>       at 
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
>       at 
> org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:49)
>       at 
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.doIntercept(ConversionErrorInterceptor.java:142)
>       at 
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:140)
>       at 
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:140)
>       at 
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:201)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:67)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> org.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(DateTextFieldInterceptor.java:133)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:89)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:101)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:142)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:160)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:175)
>       at 
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> org.apache.struts2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:121)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:167)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:207)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:196)
>       at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>       at 
> org.apache.struts2.factory.StrutsActionProxy.execute(StrutsActionProxy.java:48)
>       at 
> org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:574)
>       at 
> org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:79)
>       at 
> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:141)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
>       at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
>       at 
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
>       at 
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
>       at 
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
>       at 
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
>       at 
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)
>       at 
> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
>       at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
>       at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
>       at 
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>       at java.base/java.lang.Thread.run(Thread.java:832)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to