[JIRA] Created: (STS-923) Page with nested layouts causes separate tag to execute in a page context without supplied attributes

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[JIRA] Created: (STS-923) Page with nested layouts causes separate tag to execute in a page context without supplied attributes

JIRA jira@stripesframework.org
Page with nested layouts causes separate tag to execute in a page context without supplied attributes
-----------------------------------------------------------------------------------------------------

                 Key: STS-923
                 URL: http://www.stripesframework.org/jira/browse/STS-923
             Project: Stripes
          Issue Type: Bug
    Affects Versions: Release 1.5.4
         Environment: JBoss 5.1.0* (we have a few local modifications we use)
tomcat 8.0.12 (with jstl 1.2 added to the lib directory)
Running on Mac OS X (10.9.4)
            Reporter: Robert West
         Attachments: stripes-issue-1.5.4.tar

We are currently running on an older version of stripes (either 1.5.0 or 1.5.1 with the patch for STS-655 applied) and are looking to upgrade, but have run into a couple of what appear to be bugs.

First, when trying Stripes 1.5.4 (I first tried 1.5.8, then worked my way back to a working version in 1.5.3, then started forward one version at a time), we run into what appears to be an issue with pages that have nested layout renders and the way they handle page contexts.  Our standard layout definition for displaying most entities in the system uses jsp:includes to grab various standard navigational elements and then uses two tags to provide a title bar and a left hand menu to wrap around the basic body component implemented by whatever page is using the layout.

The left hand menu tag takes a couple of parameters and supplies them to a JavaBean created via jsp:useBean.  The title tag takes some of the same data but then uses nested layout renders to render the various drop-down menus in the title bar.  One layout render is used to generate the entire drop-down menu and then further nested layouts are used to render each button on the drop-down menu.

When the page is executed, the left hand menu tag gets executed several times.  I suspect this is being executed roughly once per sub-sub-layout render in the title tag plus once for the page itself.  In one of these invocations, the page context for the main page contains the necessary data (the "data" and "myProperty" variables in the attached simplified example) but in the others it does not and the main page thus passes null to the tag.  The JavaBean isn't expecting nulls and an NPE results.  If I remove the sub-sub-layout renders from the title tag (by replacing the content of the "dropMenus" layout component in TestActionBeanTitle.tag with static text), this does not occur.

While I can make the JavaBean threadsafe (the results of the invocations where the parameters are null seem to get thrown away from what I can tell, so returning nonsense "works"), I'm nervous about other c:if or c:choose logic also being impacted by unexpected and logically incorrect nulls.  I suppose in theory there's also a potential concern about performance issues due to tags potentially being executed many more times than is necessary.

I know this does not occur in 1.5.3 and does in 1.5.4.  I'm uncertain if it might be addressed in a later version, as I encounter a different issue with 1.5.5 through 1.5.8 with this sample page, even with the sub-sub-layout renders removed (I'll be opening a separate issue for that).

I've tried this in our current JBoss 5.1.0 environment we use in production and also in a vanilla tomcat 8.0.12 installation (my only modification was to include the jstl 1.2 library in the tomcat lib directory).  The behavior seems to be the same in either case.

Happy to try other ideas and help with the investigation.  I tried working through the various Stripes tags and page context manipulation to try and figure out what might be going on, but my brain kept getting tied up in knots.  :-D

Sample log with stripes debug turned on:
{code}
2014-09-11 08:50:36,406 INFO  localhost-startStop-1 [StripesFilter] Stripes Initialization Complete. Version: 1.5.4, Build: 1.5.4
2014-09-11 08:50:49,239 DEBUG http-nio-8080-exec-1 [StripesFilter] LocalePicker selected locale: en_US
2014-09-11 08:50:49,239 DEBUG http-nio-8080-exec-1 [StripesFilter] LocalePicker did not pick a character encoding, using default: null
2014-09-11 08:50:49,241 DEBUG http-nio-8080-exec-1 [UrlBindingFactory] Matched /fundaccounting/Test.action to /fundaccounting/Test.action
2014-09-11 08:50:49,251 INFO  http-nio-8080-exec-1 [ExpressionValidator] Expression validation will be performed using: net.sourceforge.stripes.validation.expression.Jsp21ExpressionExecutor
2014-09-11 08:50:49,253 DEBUG http-nio-8080-exec-1 [ExecutionContext] Transitioning to lifecycle stage RequestInit
2014-09-11 08:50:49,255 DEBUG http-nio-8080-exec-1 [ExecutionContext] Transitioning to lifecycle stage ActionBeanResolution
2014-09-11 08:50:49,255 DEBUG http-nio-8080-exec-1 [UrlBindingFactory] Matched /fundaccounting/Test.action to /fundaccounting/Test.action
2014-09-11 08:50:49,255 DEBUG http-nio-8080-exec-1 [UrlBindingFactory] Matched /fundaccounting/Test.action to /fundaccounting/Test.action
2014-09-11 08:50:49,260 DEBUG http-nio-8080-exec-1 [ExecutionContext] Transitioning to lifecycle stage HandlerResolution
2014-09-11 08:50:49,261 DEBUG http-nio-8080-exec-1 [UrlBindingFactory] Matched /fundaccounting/Test.action to /fundaccounting/Test.action
2014-09-11 08:50:49,261 DEBUG http-nio-8080-exec-1 [DispatcherHelper] Resolved event: defaultResolution; will invoke: TestActionBean.defaultResolution()
2014-09-11 08:50:49,263 DEBUG http-nio-8080-exec-1 [ExecutionContext] Transitioning to lifecycle stage BindingAndValidation
2014-09-11 08:50:49,266 DEBUG http-nio-8080-exec-1 [DefaultValidationMetadataProvider] Loaded validations for ActionBean TestActionBean: <none>
2014-09-11 08:50:49,266 DEBUG http-nio-8080-exec-1 [DefaultActionBeanPropertyBinder] Running required field validation on bean class com.backstopsolutions.stripes.TestActionBean
2014-09-11 08:50:49,268 DEBUG http-nio-8080-exec-1 [ExecutionContext] Transitioning to lifecycle stage CustomValidation
2014-09-11 08:50:49,270 DEBUG http-nio-8080-exec-1 [ExecutionContext] Transitioning to lifecycle stage EventHandling
2014-09-11 08:50:49,271 DEBUG http-nio-8080-exec-1 [ExecutionContext] Transitioning to lifecycle stage ResolutionExecution
2014-09-11 08:50:49,272 DEBUG http-nio-8080-exec-1 [HttpCacheInterceptor] Looking for HttpCache on com.backstopsolutions.stripes.TestActionBean.defaultResolution()
2014-09-11 08:50:49,274 DEBUG http-nio-8080-exec-1 [UrlBindingFactory] No URL binding matches /WEB-INF/stripes/testAction.jsp
2014-09-11 08:50:49,274 DEBUG http-nio-8080-exec-1 [UrlBindingFactory] No URL binding matches /WEB-INF/stripes/testAction.jsp
2014-09-11 08:50:49,779 DEBUG http-nio-8080-exec-1 [LayoutContext] Push context /WEB-INF/stripes/testAction.jsp -> /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:49,780 DEBUG http-nio-8080-exec-1 [LayoutWriter] Create layout writer wrapped around org.apache.jasper.runtime.JspWriterImpl@722fd5ba
2014-09-11 08:50:49,780 DEBUG http-nio-8080-exec-1 [LayoutRenderTag] Start layout init in /WEB-INF/stripes/testAction.jsp
2014-09-11 08:50:49,780 DEBUG http-nio-8080-exec-1 [LayoutWriter] Failed to flush buffer: Illegal to flush within a custom tag
2014-09-11 08:50:49,781 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] Register component embeddedStyle with /WEB-INF/stripes/testAction.jsp
2014-09-11 08:50:49,783 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] Register component embeddedJavascript with /WEB-INF/stripes/testAction.jsp
2014-09-11 08:50:49,783 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] Register component body with /WEB-INF/stripes/testAction.jsp
2014-09-11 08:50:49,783 DEBUG http-nio-8080-exec-1 [LayoutRenderTag] End layout init in /WEB-INF/stripes/testAction.jsp
2014-09-11 08:50:49,783 DEBUG http-nio-8080-exec-1 [LayoutRenderTag] Start layout exec in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,176 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] Invoke component renderer for direct render of "embeddedStyle"
2014-09-11 08:50:50,176 DEBUG http-nio-8080-exec-1 [LayoutComponentRenderer] Render component "embeddedStyle" in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,176 DEBUG http-nio-8080-exec-1 [LayoutComponentRenderer] Start execute "embeddedStyle" in /WEB-INF/stripes/testAction.jsp -> /layouts/testActionBeanLayout.jsp from /WEB-INF/stripes/testAction.jsp -> /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,176 DEBUG http-nio-8080-exec-1 [LayoutRenderTag] Start component render phase for embeddedStyle in /WEB-INF/stripes/testAction.jsp
2014-09-11 08:50:50,176 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] Render embeddedStyle in /WEB-INF/stripes/testAction.jsp
2014-09-11 08:50:50,176 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] No-op for embeddedJavascript in /WEB-INF/stripes/testAction.jsp
2014-09-11 08:50:50,176 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] No-op for body in /WEB-INF/stripes/testAction.jsp
2014-09-11 08:50:50,176 DEBUG http-nio-8080-exec-1 [LayoutRenderTag] End component render phase for null in /WEB-INF/stripes/testAction.jsp
2014-09-11 08:50:50,176 DEBUG http-nio-8080-exec-1 [LayoutComponentRenderer] End execute "embeddedStyle" in /WEB-INF/stripes/testAction.jsp -> /layouts/testActionBeanLayout.jsp from /WEB-INF/stripes/testAction.jsp -> /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,176 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] Invoke component renderer for direct render of "embeddedHead"
2014-09-11 08:50:50,177 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] No component renderer in page context for 'embeddedHead'
2014-09-11 08:50:50,177 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] Component was not present in /WEB-INF/stripes/testAction.jsp so using default content from /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,179 DEBUG http-nio-8080-exec-1 [LayoutContext] Push context /layouts/testActionBeanLayout.jsp -> /layouts/test-title-box.jsp
2014-09-11 08:50:50,179 DEBUG http-nio-8080-exec-1 [LayoutRenderTag] Start layout init in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,179 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] Register component title with /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,179 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] Register component dropMenus with /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,179 DEBUG http-nio-8080-exec-1 [LayoutRenderTag] End layout init in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,180 DEBUG http-nio-8080-exec-1 [LayoutRenderTag] Start layout exec in /layouts/test-title-box.jsp
2014-09-11 08:50:50,253 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] Invoke component renderer for direct render of "title"
2014-09-11 08:50:50,253 DEBUG http-nio-8080-exec-1 [LayoutComponentRenderer] Render component "title" in /layouts/test-title-box.jsp
2014-09-11 08:50:50,253 DEBUG http-nio-8080-exec-1 [LayoutComponentRenderer] Start execute "title" in /layouts/testActionBeanLayout.jsp -> /layouts/test-title-box.jsp from /layouts/testActionBeanLayout.jsp -> /layouts/test-title-box.jsp
2014-09-11 08:50:50,254 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] No-op for embeddedStyle in /layouts/test-title-box.jsp
2014-09-11 08:50:50,254 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] No-op for embeddedHead in /layouts/test-title-box.jsp
2014-09-11 08:50:50,254 DEBUG http-nio-8080-exec-1 [LayoutRenderTag] Start component render phase for title in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,254 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] Render title in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,256 DEBUG http-nio-8080-exec-1 [UrlBindingFactory] Matched /fundaccounting/Test.action to /fundaccounting/Test.action
2014-09-11 08:50:50,256 DEBUG http-nio-8080-exec-1 [UrlBindingFactory] Matched /fundaccounting/Test.action to /fundaccounting/Test.action
2014-09-11 08:50:50,257 DEBUG http-nio-8080-exec-1 [DefaultFormatterFactory] Caching Formatter for class java.lang.String => class net.sourceforge.stripes.format.ObjectFormatter
2014-09-11 08:50:50,258 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] No-op for dropMenus in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,258 DEBUG http-nio-8080-exec-1 [LayoutRenderTag] End component render phase for null in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,258 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] No-op for body in /layouts/test-title-box.jsp
2014-09-11 08:50:50,261 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] No-op for embeddedJavascript in /layouts/test-title-box.jsp
2014-09-11 08:50:50,261 DEBUG http-nio-8080-exec-1 [LayoutComponentRenderer] End execute "title" in /layouts/testActionBeanLayout.jsp -> /layouts/test-title-box.jsp from /layouts/testActionBeanLayout.jsp -> /layouts/test-title-box.jsp
2014-09-11 08:50:50,262 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] Invoke component renderer for direct render of "dropMenus"
2014-09-11 08:50:50,262 DEBUG http-nio-8080-exec-1 [LayoutComponentRenderer] Render component "dropMenus" in /layouts/test-title-box.jsp
2014-09-11 08:50:50,262 DEBUG http-nio-8080-exec-1 [LayoutComponentRenderer] Start execute "dropMenus" in /layouts/testActionBeanLayout.jsp -> /layouts/test-title-box.jsp from /layouts/testActionBeanLayout.jsp -> /layouts/test-title-box.jsp
2014-09-11 08:50:50,262 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] No-op for embeddedStyle in /layouts/test-title-box.jsp
2014-09-11 08:50:50,262 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] No-op for embeddedHead in /layouts/test-title-box.jsp
2014-09-11 08:50:50,262 DEBUG http-nio-8080-exec-1 [LayoutRenderTag] Start component render phase for dropMenus in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,262 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] No-op for title in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,262 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] Render dropMenus in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,262 DEBUG http-nio-8080-exec-1 [LayoutContext] Push context /layouts/testActionBeanLayout.jsp -> /layouts/test-button-list.jsp
2014-09-11 08:50:50,262 DEBUG http-nio-8080-exec-1 [LayoutRenderTag] Start layout init in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,262 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] Register component topButton with /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,262 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] Register component topList with /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,262 DEBUG http-nio-8080-exec-1 [LayoutRenderTag] End layout init in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,262 DEBUG http-nio-8080-exec-1 [LayoutRenderTag] Start layout exec in /layouts/test-button-list.jsp
2014-09-11 08:50:50,328 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] Invoke component renderer for direct render of "topButton"
2014-09-11 08:50:50,328 DEBUG http-nio-8080-exec-1 [LayoutComponentRenderer] Render component "topButton" in /layouts/test-button-list.jsp
2014-09-11 08:50:50,328 DEBUG http-nio-8080-exec-1 [LayoutComponentRenderer] Start execute "topButton" in /layouts/testActionBeanLayout.jsp -> /layouts/test-button-list.jsp from /layouts/testActionBeanLayout.jsp -> /layouts/test-button-list.jsp
2014-09-11 08:50:50,328 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] No-op for embeddedStyle in /layouts/test-button-list.jsp
2014-09-11 08:50:50,329 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] No-op for embeddedHead in /layouts/test-button-list.jsp
2014-09-11 08:50:50,329 DEBUG http-nio-8080-exec-1 [LayoutRenderTag] Start component render phase for topButton in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,329 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] No-op for title in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,329 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] No-op for dropMenus in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,329 DEBUG http-nio-8080-exec-1 [LayoutRenderTag] End component render phase for topButton in /layouts/testActionBeanLayout.jsp
2014-09-11 08:50:50,329 DEBUG http-nio-8080-exec-1 [LayoutComponentTag] No-op for body in /layouts/test-button-list.jsp
2014-09-11 08:50:50,334 ERROR http-nio-8080-exec-1 [LayoutComponentTag] Unhandled exception trying to render component "topButton" to a string in context /layouts/testActionBeanLayout.jsp -> /layouts/test-button-list.jsp
org.apache.jasper.JasperException: An exception occurred processing JSP page /layouts/testActionBeanLayout.jsp at line 26

23:                 <stripes:layout-component name="body"/>
24:             </div>
25:             <div id="left">
26:                 <stab:menu data="${data}" myProperty="${myProperty}"/>
27:             </div>
28:         </div>
29:         <script type="text/javascript">


Stacktrace:
        at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:335)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:584)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:523)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:934)
        at org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:675)
        at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:669)
        at net.sourceforge.stripes.tag.layout.LayoutComponentRenderer.write(LayoutComponentRenderer.java:133)
        at net.sourceforge.stripes.tag.layout.LayoutComponentTag.doStartTag(LayoutComponentTag.java:158)
        at org.apache.jsp.layouts.test_002dbutton_002dlist_jsp._jspx_meth_stripes_005flayout_002dcomponent_005f0(test_002dbutton_002dlist_jsp.java:146)
        at org.apache.jsp.layouts.test_002dbutton_002dlist_jsp._jspx_meth_stripes_005flayout_002ddefinition_005f0(test_002dbutton_002dlist_jsp.java:117)
        at org.apache.jsp.layouts.test_002dbutton_002dlist_jsp._jspService(test_002dbutton_002dlist_jsp.java:82)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:335)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:584)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:523)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:934)
        at org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:675)
        at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:669)
        at org.apache.jasper.runtime.JspContextWrapper.include(JspContextWrapper.java:319)
        at net.sourceforge.stripes.tag.layout.LayoutRenderTag.doEndTag(LayoutRenderTag.java:141)
        at org.apache.jsp.tag.webTestActionBeanTitle_tag._jspx_meth_stripes_005flayout_002drender_005f1(webTestActionBeanTitle_tag.java:302)
        at org.apache.jsp.tag.webTestActionBeanTitle_tag._jspx_meth_stripes_005flayout_002dcomponent_005f1(webTestActionBeanTitle_tag.java:262)
        at org.apache.jsp.tag.webTestActionBeanTitle_tag._jspx_meth_stripes_005flayout_002drender_005f0(webTestActionBeanTitle_tag.java:143)
        at org.apache.jsp.tag.webTestActionBeanTitle_tag.doTag(webTestActionBeanTitle_tag.java:103)
        at org.apache.jsp.layouts.testActionBeanLayout_jsp._jspx_meth_stab_005ftitle_005f0(testActionBeanLayout_jsp.java:228)
        at org.apache.jsp.layouts.testActionBeanLayout_jsp._jspx_meth_stripes_005flayout_002ddefinition_005f0(testActionBeanLayout_jsp.java:145)
        at org.apache.jsp.layouts.testActionBeanLayout_jsp._jspService(testActionBeanLayout_jsp.java:90)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:335)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:584)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:523)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:934)
        at org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:675)
        at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:669)
        at net.sourceforge.stripes.tag.layout.LayoutComponentRenderer.write(LayoutComponentRenderer.java:133)
        at net.sourceforge.stripes.tag.layout.LayoutComponentTag.doStartTag(LayoutComponentTag.java:158)
        at org.apache.jsp.layouts.test_002dtitle_002dbox_jsp._jspx_meth_stripes_005flayout_002dcomponent_005f1(test_002dtitle_002dbox_jsp.java:170)
        at org.apache.jsp.layouts.test_002dtitle_002dbox_jsp._jspx_meth_stripes_005flayout_002ddefinition_005f0(test_002dtitle_002dbox_jsp.java:127)
        at org.apache.jsp.layouts.test_002dtitle_002dbox_jsp._jspService(test_002dtitle_002dbox_jsp.java:83)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:335)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:584)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:523)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:934)
        at org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:675)
        at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:669)
        at org.apache.jasper.runtime.JspContextWrapper.include(JspContextWrapper.java:319)
        at net.sourceforge.stripes.tag.layout.LayoutRenderTag.doEndTag(LayoutRenderTag.java:141)
        at org.apache.jsp.tag.webTestActionBeanTitle_tag._jspx_meth_stripes_005flayout_002drender_005f0(webTestActionBeanTitle_tag.java:147)
        at org.apache.jsp.tag.webTestActionBeanTitle_tag.doTag(webTestActionBeanTitle_tag.java:103)
        at org.apache.jsp.layouts.testActionBeanLayout_jsp._jspx_meth_stab_005ftitle_005f0(testActionBeanLayout_jsp.java:228)
        at org.apache.jsp.layouts.testActionBeanLayout_jsp._jspx_meth_stripes_005flayout_002ddefinition_005f0(testActionBeanLayout_jsp.java:145)
        at org.apache.jsp.layouts.testActionBeanLayout_jsp._jspService(testActionBeanLayout_jsp.java:90)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:335)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:584)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:523)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:934)
        at org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:675)
        at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:669)
        at net.sourceforge.stripes.tag.layout.LayoutRenderTag.doEndTag(LayoutRenderTag.java:141)
        at org.apache.jsp.WEB_002dINF.stripes.testAction_jsp._jspx_meth_stripes_005flayout_002drender_005f0(testAction_jsp.java:157)
        at org.apache.jsp.WEB_002dINF.stripes.testAction_jsp._jspService(testAction_jsp.java:104)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:335)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:391)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:318)
        at net.sourceforge.stripes.action.ForwardResolution.execute(ForwardResolution.java:110)
        at net.sourceforge.stripes.controller.DispatcherHelper$7.intercept(DispatcherHelper.java:508)
        at net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:158)
        at net.sourceforge.stripes.controller.HttpCacheInterceptor.intercept(HttpCacheInterceptor.java:99)
        at net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:155)
        at net.sourceforge.stripes.controller.BeforeAfterMethodInterceptor.intercept(BeforeAfterMethodInterceptor.java:113)
        at net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:155)
        at net.sourceforge.stripes.controller.ExecutionContext.wrap(ExecutionContext.java:74)
        at net.sourceforge.stripes.controller.DispatcherHelper.executeResolution(DispatcherHelper.java:502)
        at net.sourceforge.stripes.controller.DispatcherServlet.executeResolution(DispatcherServlet.java:286)
        at net.sourceforge.stripes.controller.DispatcherServlet.service(DispatcherServlet.java:170)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:247)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:534)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
        at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:744)
Caused by: javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.el.ELException: Error reading 'someCompositeData' on type com.backstopsolutions.web.TestActionBeanMenuHelper
        at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:901)
        at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:834)
        at org.apache.jsp.layouts.testActionBeanLayout_jsp._jspService(testActionBeanLayout_jsp.java:103)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
        ... 148 more
Caused by: javax.el.ELException: Error reading 'someCompositeData' on type com.backstopsolutions.web.TestActionBeanMenuHelper
        at javax.el.BeanELResolver.getValue(BeanELResolver.java:101)
        at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:110)
        at org.apache.el.parser.AstValue.getValue(AstValue.java:167)
        at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:187)
        at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:956)
        at org.apache.jsp.tag.webTestActionBeanMenu_tag.doTag(webTestActionBeanMenu_tag.java:129)
        at org.apache.jsp.layouts.testActionBeanLayout_jsp._jspx_meth_stab_005fmenu_005f0(testActionBeanLayout_jsp.java:265)
        at org.apache.jsp.layouts.testActionBeanLayout_jsp._jspx_meth_stripes_005flayout_002ddefinition_005f0(testActionBeanLayout_jsp.java:157)
        at org.apache.jsp.layouts.testActionBeanLayout_jsp._jspService(testActionBeanLayout_jsp.java:90)
        ... 151 more
Caused by: java.lang.NullPointerException
        at com.backstopsolutions.web.TestActionBeanMenuHelper.getSomeCompositeData(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at javax.el.BeanELResolver.getValue(BeanELResolver.java:97)
        ... 159 more
<variations on the same stack trace repeat>
{code}

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

       

------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
Stripes-development mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/stripes-development