excalibur-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leo Simons (JIRA)" <...@excalibur.apache.org>
Subject [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.
Date Wed, 14 Feb 2007 23:19:05 GMT

     [ 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


Mime
View raw message