Nested layout renders resulting in infinite recursion

Description

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

When trying Stripes 1.5.8, we ran into an issue where our page seems to result in an infinite loop when it hits a nested layout-render tag. This same stack pattern seems to occur in all versions from 1.5.5 through 1.5.8. 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. However, in this case the infinite recursion seems to occur even if I remove the further nested layouts (resulting in one layout-render that invokes one layout-render for two total).

When the page is executed, the first part of the page seems to proceed normally exactly as it does in 1.5.4. Once it hits the nested layout render, it does the layout init and then invokes the component renderer for the title component. In 1.5.4, it then eventually starts the component render phase and proceeds from there. In 1.5.8 however, it seems to reset to where it pushed the context and then starts the test-title-box processing from the beginning again. There are 1.5.4 and 1.5.8 log snippets below for the same application.

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.

1.5.4 execution of the page with Stripes debug logging turned on:

1.5.8 execution of the page with Stripes debug logging turned on attached compressed.

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)

Assignee

Rick G

Reporter

Robert West

Labels

None

Fix versions

Priority

Critical
Configure