[ 
https://issues.apache.org/jira/browse/TILES-519?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vitaly Polonetsky updated TILES-519:
------------------------------------

    Attachment: TILES-519-tests.patch
                TILES-519-fix.patch

Added patch that fixes the problem and another patch to add tests (also added 
small additions to existing tests)

> tiles:getAsString is not cleaning tiles context when attribute is not present 
> and ignore=true
> ---------------------------------------------------------------------------------------------
>
>                 Key: TILES-519
>                 URL: https://issues.apache.org/jira/browse/TILES-519
>             Project: Tiles
>          Issue Type: Bug
>          Components: tiles-template
>    Affects Versions: 2.2.2
>            Reporter: Vitaly Polonetsky
>         Attachments: TILES-519-fix.patch, TILES-519-tests.patch
>
>
> After putting this line in the template:
> <tiles:getAsString name="subtitle" ignore="true"/>
> <tiles:insertAttribute name="body" />
> And if "subtitle" attribute is not defined. The page will fail on rendering 
> the "body" attribute, because getAsString failed to cleanup it's tiles 
> context (endContext() is not executed).
> SOLUTION:
> The problem is in GetAsStringModel class, in the last method - 
> renderAttribute():
> The first three lines that check for null attribute and ignore flag should be 
> inside the try caluse:
> try {
>         if (attribute == null && ignore) {
>             return;
>         }
>         writer.write(...
> This way the finally clause will be executed even in attribute is null and 
> should be ignored. The finally clause is ending the tiles context.
> This is the same as the code inside: InsertAttributeModel.renderAttribute()

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

Reply via email to