[ 
http://www.stripesframework.org/jira/browse/STS-847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12665#comment-12665
 ] 

Joshua Pollak commented on STS-847:
-----------------------------------

I would love to help, but my knowledge of JSPs and tag technology is pretty 
limited.

I won't argue with the general "JSPs for view" philosophy, but _relying_ on 
that seems like a problem waiting to happen. Its also the type of problem that 
can be very hard to debug or test for. 

In my case I inherited a lot of legacy code which has a lot of code in the 
JSPs, so I'm stuck. For now I've set our dependency to Stripes 1.5.3 and I'll 
leave it like that for now.

> layout-component forces additional loading of full page
> -------------------------------------------------------
>
>                 Key: STS-847
>                 URL: http://www.stripesframework.org/jira/browse/STS-847
>             Project: Stripes
>          Issue Type: Bug
>          Components: Tag Library
>    Affects Versions: Release 1.5.6
>            Reporter: Roman Kosenko
>            Assignee: Ben Gunter
>              Labels: layout
>
> Let's create, for example, test-layout.jsp:
> <%@taglib prefix="stripes" uri="http://stripes.sourceforge.net/stripes.tld"%>
> <stripes:layout-definition>
>       <stripes:layout-component name="test_component"/>
> </stripes:layout-definition>
> and sample test.jsp:
> <%@taglib prefix="stripes" uri="http://stripes.sourceforge.net/stripes.tld"%>
> <stripes:layout-render name="/test-layout.jsp">
>       <stripes:layout-component name="test_component">
>               test
>       </stripes:layout-component>
> </stripes:layout-render>
> <%
>       new Exception().printStackTrace();
> %>
> when we try to load our test.jsp page we can see that this page is executed 
> twice:
> java.lang.Exception
>       at org.apache.jsp.test_jsp._jspService(test_jsp.java:74)
>       at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>       at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
>       at 
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
>       at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530)
>       at 
> org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:927)
>       at 
> org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:684)
>       at 
> org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:678)
>       at 
> net.sourceforge.stripes.tag.layout.LayoutContext.doInclude(LayoutContext.java:191)
>       at 
> net.sourceforge.stripes.tag.layout.LayoutComponentRenderer.write(LayoutComponentRenderer.java:133)
>       at 
> net.sourceforge.stripes.tag.layout.LayoutComponentTag.doStartTag(LayoutComponentTag.java:202)
>       at 
> org.apache.jsp.test_002dlayout_jsp._jspx_meth_stripes_005flayout_002dcomponent_005f0(test_002dlayout_jsp.java:119)
>       at 
> org.apache.jsp.test_002dlayout_jsp._jspx_meth_stripes_005flayout_002ddefinition_005f0(test_002dlayout_jsp.java:97)
>       at 
> org.apache.jsp.test_002dlayout_jsp._jspService(test_002dlayout_jsp.java:70)
>       at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>       at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
>       at 
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
>       at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530)
>       at 
> org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:927)
>       at 
> org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:684)
>       at 
> org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:678)
>       at 
> net.sourceforge.stripes.tag.layout.LayoutContext.doInclude(LayoutContext.java:191)
>       at 
> net.sourceforge.stripes.tag.layout.LayoutRenderTag.doEndTag(LayoutRenderTag.java:155)
>       at 
> org.apache.jsp.test_jsp._jspx_meth_stripes_005flayout_002drender_005f0(test_jsp.java:120)
>       at org.apache.jsp.test_jsp._jspService(test_jsp.java:70)
>       at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>       at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
>       at 
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
>       at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
>       at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
>       at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
>       at 
> org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:269)
>       at 
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
>       at 
> org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:1731)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>       at java.lang.Thread.run(Thread.java:722)
> java.lang.Exception
>       at org.apache.jsp.test_jsp._jspService(test_jsp.java:74)
>       at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>       at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
>       at 
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
>       at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
>       at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
>       at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
>       at 
> org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:269)
>       at 
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
>       at 
> org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:1731)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>       at java.lang.Thread.run(Thread.java:722)
> I think that this is:
> 1) unintuitive and undocumented behavior;
> 2) too overhead in performance context (especially when we have a dozen of 
> components);
> 3) may have side effect.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to