You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@excalibur.apache.org by "Jorg Heymans (JIRA)" <de...@excalibur.apache.org> on 2006/10/29 17:36:17 UTC

[jira] Commented: (EXLBR-31) 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.

    [ 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: dev-unsubscribe@excalibur.apache.org
For additional commands, e-mail: dev-help@excalibur.apache.org