You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@excalibur.apache.org by "Leo Simons (JIRA)" <de...@excalibur.apache.org> on 2007/02/15 00:19:05 UTC

[jira] Closed: (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.

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

Leo Simons closed EXLBR-31.
---------------------------

       Resolution: Fixed
    Fix Version/s: 2.2

SVN revision r468933

> 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: https://issues.apache.org/jira/browse/EXLBR-31
>             Project: Excalibur Components
>          Issue Type: Bug
>          Components: XMLUtil
>    Affects Versions: 1.2
>            Reporter: Ard Schrijvers
>             Fix For: 2.2
>
>         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.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@excalibur.apache.org
For additional commands, e-mail: dev-help@excalibur.apache.org