[ 
https://issues.apache.org/jira/browse/TILES-544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13262492#comment-13262492
 ] 

Viktor Hedefalk commented on TILES-544:
---------------------------------------

I have a org.apache.tiles.context.ChainedTilesRequestContextFactory@110643ed

with two factories inside:

[org.apache.tiles.servlet.context.ServletTilesRequestContextFactory@4f1bd595, 
org.apache.tiles.jsp.context.JspTilesRequestContextFactory@2c6351c6]


The first wants a req and resp pair:
{code}
public TilesRequestContext createRequestContext(TilesApplicationContext context,
                                                    Object... requestItems) {
        if (requestItems.length == 2
                && requestItems[0] instanceof HttpServletRequest
                && requestItems[1] instanceof HttpServletResponse) {
            return new ServletTilesRequestContext(context,
                (HttpServletRequest) requestItems[0],
                (HttpServletResponse) requestItems[1]);
        }

        return null;
    }
{code}


and the other wants a PageContext:

{code}
 public TilesRequestContext createRequestContext(
            TilesApplicationContext context, Object... requestItems) {
        if (requestItems.length == 1 && requestItems[0] instanceof PageContext) 
{
            PageContext pageContext = (PageContext) requestItems[0];
            ServletRequest request = pageContext.getRequest();
            ServletResponse response = pageContext.getResponse();
            TilesRequestContext enclosedRequest;
            if (parent != null) {
                enclosedRequest = parent.createRequestContext(context, request,
                        response);
            } else {
                enclosedRequest = new ServletTilesRequestContext(context,
                        (HttpServletRequest) request,
                        (HttpServletResponse) response);
            }
            return new JspTilesRequestContext(enclosedRequest, pageContext);
        }

        return null;
    }
{code}

None match my [org.apache.tiles.BasicAttributeContext@0] that I got from 
container.startContext(request, response);

Any help highly appreciated!

Thanks,
Viktor
                
> Stack overflow due to rendering loop when including a resource resulting in 
> another tiles view.
> -----------------------------------------------------------------------------------------------
>
>                 Key: TILES-544
>                 URL: https://issues.apache.org/jira/browse/TILES-544
>             Project: Tiles
>          Issue Type: Bug
>    Affects Versions: 2.2.2
>         Environment: Spring MVC 3.1.1
>            Reporter: Viktor Hedefalk
>         Attachments: tiles-stackoverflow.txt
>
>
> I get a stackoverflow because of a rendering loop when including an call to a 
> controller with a view is also a tile. This is a dup of TILES-418, but since 
> that one was closed and I couldn't attach my stack trace, I'll open this new 
> one.
> To me this is very critical. I just upgraded an application from Spring 2.0.7 
> and old struts-tiles to Spring 3.1.1 and tiles 2.2.2 and the structure worked 
> with struts-tiles. It's kind of a homebrew portlet thingy where we iterate 
> over url:s pointing to controllers given by a cms.
> The included controller is called correctly and returns a model and view 
> where the view points to a tile definition. But when Spring gives over the 
> rendering to tiles, the loop begins.
> It doesn't matter if I include the url with:
>  <tiles:insertTemplate name="${entry.url}" />
> or
>  <c:import url="${entry.url }"  />
> the same error occurs.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to