[ http://issues.apache.org/jira/browse/EXLBR-31?page=comments#action_12445445 ] Jorg Heymans commented on EXLBR-31: -----------------------------------
Applied, thanks Ard. > When check-includes for stylesheets is true for caching, it only works for > one level deep included/imported stylesheets: if you change an imported or > included stylesheet the change does not take effect until you update the main > stylesheet. > ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: EXLBR-31 > URL: http://issues.apache.org/jira/browse/EXLBR-31 > Project: Excalibur Components > Issue Type: Bug > Components: XMLUtil > Affects Versions: 1.2 > Reporter: Ard Schrijvers > Attachments: XSLTProcessorImpl.java.patch > > > When using cached stylesheets, and have for example in cocoon in the > TraxTransformer the check-includes set to true, the includes are only checked > one level deep. So a change in directly imported/included xsls do affect the > validity of the main (the very first one) stylesheet, but a change in an > imported stylesheet of an imported one do need invalidate the main styleheet > (therefor, you need to touch the main stylesheet all the time when you work > with many importing styleheets and use them hierarchically). > The bug is in XSLTProcessorImpl in public javax.xml.transform.Source resolve( > String href, String base ), at List includes = (List)m_includesMap.get( base > );. The problem lies in the "base", because the base is related to the > stylesheet "calling" the import, so, if it is an import calling an import, > the "base" is different from the main stylesheet, therefor not adding its > validity to the main stylesheet aggregated validity. > I added a global "m_id" of the main stylesheet that is now used in > XSLTProcessorImpl, and replace "base" in List includes = > (List)m_includesMap.get( base ) by List includes = (List)m_includesMap.get( > m_id );. This solves the invalidation of main stylesheets. > See patch. > Ard Schrijvers -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
