Greg Arakelian created TILES-555:
------------------------------------

             Summary: The method used to generate anonymousDefinition names may 
break template inheritance.
                 Key: TILES-555
                 URL: https://issues.apache.org/jira/browse/TILES-555
             Project: Tiles
          Issue Type: Bug
          Components: tiles-core
    Affects Versions: 2.2.3
            Reporter: Greg Arakelian


My company is using Apache Tiles 2.2.2 on a project that -- until recently -- 
was not localized.  After adding Tiles configuration files for various 
languages, e.g. tiles_es.xml, tiles_fr.xml, and restarting, we began to 
experience the bug described in TILES-513.  

First, we tried the suggestion made by Jamie Goodfellow. That did not fix the 
problem.  Then we tried the patch made by Antonio and checked in as part of the 
changeset for Tiles 2.2.3 (which was unreleased).  We discovered that the 
problem did not go away.

The reason for this is that DigesterDefinitionsReader uses an internal counter, 
anonymousDefinitionIndex, to generate a unique definition name as a source file 
is read in. 

When ResolvingLocaleUrlDefinitionDAO calls loadDefinitionsFromURL, first for 
the root file, then for the addition locale(s), the generated anonymous 
definition names do not match up, and therefore, inheritance is broken.

The change I made to my code was to add a "reset" method to an overloaded 
DigesterDefinitionsReader, so that the internal counter could be reset prior to 
calling loadDefinitionsFromURL. Once that is done, the anonymous definition 
names to match up, and inheritance to work properly.  I'm not sure about thread 
safety, but the hack did work for me so far.

Perhaps it would be better to generate an anonymousDefinition name based upon 
something consistent between re-reads of the source file, (a hash of the file 
and line number, etc?) that would be consistent between reads.

Thanks for all the hard work you guys do.





--
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