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


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