You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Vaideesh Natarajan (JIRA)" <ji...@apache.org> on 2009/10/07 20:21:50 UTC

[jira] Commented: (WW-2669) Autocompleter options list element does not resize correctly

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

Vaideesh Natarajan commented on WW-2669:
----------------------------------------

I have the same issue and would like to upgrade to Struts 2.1, Can you tell me what is the best way to do that. I tried upgrading by replaced the following six jar files and got errors while accessing the page.

commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
freemarker-2.3.15.jar
ognl-2.7.3.jar
struts2-core-2.1.8.jar
xwork-core-2.1.6.jar

Error Message

Oct 7, 2009 11:13:51 AM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.io.FileNotFoundException: Template /template/ajax/head.ftl not found.
	at freemarker.template.Configuration.getTemplate(Configuration.java:489)
	at freemarker.template.Configuration.getTemplate(Configuration.java:452)
	at org.apache.struts2.components.template.FreemarkerTemplateEngine.renderTemplate(FreemarkerTemplateEngine.java:120)
	at org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:559)
	at org.apache.struts2.components.UIBean.end(UIBean.java:513)
	at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
	at org.apache.jsp.WEB_002dINF.decorators.btr.mainLayout_jsp._jspx_meth_s_005fhead_005f0(mainLayout_jsp.java:796)
	at org.apache.jsp.WEB_002dINF.decorators.btr.mainLayout_jsp._jspService(mainLayout_jsp.java:191)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.fluensee.assetmgmt.assettrack.btr.filter.SpanOfControlFilter.doFilter(SpanOfControlFilter.java:108)
	at com.fluensee.assetmgmt.assettrack.btr.filter.SpanOfControlFilter.doFilter(SpanOfControlFilter.java:57)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	at org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:198)
	at org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:179)
	at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:606)
	at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:246)
	at org.apache.tiles.web.util.TilesDispatchServlet.doGet(TilesDispatchServlet.java:83)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.fluensee.assetmgmt.assettrack.btr.filter.SpanOfControlFilter.doFilter(SpanOfControlFilter.java:108)
	at com.fluensee.assetmgmt.assettrack.btr.filter.SpanOfControlFilter.doFilter(SpanOfControlFilter.java:57)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.tiles.web.startup.TilesFilter.doFilter(TilesFilter.java:78)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.fluensee.enable.portal.filter.MenuFilter.doFilter(MenuFilter.java:319)
	at com.fluensee.enable.portal.filter.MenuFilter.doFilter(MenuFilter.java:84)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.fluensee.enable.portal.filter.AccessControlFilter.doFilter(AccessControlFilter.java:96)
	at com.fluensee.enable.portal.filter.AccessControlFilter.doFilter(AccessControlFilter.java:46)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:619)
ERROR - Error rendering tile

> Autocompleter options list element does not resize correctly
> ------------------------------------------------------------
>
>                 Key: WW-2669
>                 URL: https://issues.apache.org/struts/browse/WW-2669
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Plugin - Dojo Tags
>    Affects Versions: 2.1.2
>            Reporter: Aner Perez
>             Fix For: 2.1.3
>
>
> The sx:autocompleter has code in place to resize the div which contains the options based on the number of items in the list.
> The div starts out at 120px by default but if the list of items uses less than 120 pixels, it resizes the div to fit the available data (i.e. makes it smaller).
> The problem is that the code never expands the size of the div if the list of items grows once more.  If you have an autocompleter which starts out with 1 item in it, the div (once displayed) will be resized to fit 1 item.  If you refresh the list of items in the autopcompleter to have more than 1 item, the div is still displayed with a height appropriate for 1 item.  This makes it seem like there is only 1 item in the list.
> The offending code is at line 529 of src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js :
> ---- original code ---
>       var totalHeight = this.itemHeight * childs.length;
>       if(totalHeight < this.dropdownHeight) {
>         this.optionsListNode.style.height = totalHeight + 2 + "px";
>       }
> --- original code ---
> This should be:
> --- fixed code ---
>       var totalHeight = this.itemHeight * childs.length;
>       if(totalHeight < this.dropdownHeight) {
>         this.optionsListNode.style.height = totalHeight + 2 + "px";
>       } else {
>         this.optionsListNode.style.height = this.dropdownHeight + "px";
>       }
> --- fixed code ---
> Now the div correctly handles the height increase when more items are added to the list.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.