Bug #2324
closedFocus-dependent attribute sets
100%
Description
Although XSLT attribute-sets are normally constant, or depend only on global variables and parameters, they are allowed to have a dependency on the context item, so that the same attribute set produces different values depending on the context where it is used. Saxon attempts to assess whether an attribute set is dependent on the focus, but it can get this wrong, because it makes the assessment when processing a use-attribute-sets "pseudo-expression" which may happen before the target attribute set has been compiled. As a result a use-attribute-sets expression may be considered context independent when this is not the case, resulting in incorrect optimizations such as loop-lifting, and therefore evaluation in the wrong context giving the wrong results.
The emerged from the creation of the somewhat pathological test case attribute-set-0106.
Updated by Michael Kay over 9 years ago
- Status changed from New to Resolved
A patch has been committed on the 9.6 and 9.7 branches (UseAttributeSets.getIntrinsicDependencies()).
XSLT 3.0 test case attribute-set-0107 tests for the condition.
Updated by O'Neil Delpratt over 9 years ago
- Status changed from Resolved to Closed
- % Done changed from 0 to 100
- Fixed in version set to 9.6.0.5
Bug fix applied in the Saxon 9.6.0.5 maintenance release.
Updated by O'Neil Delpratt almost 9 years ago
- Sprint/Milestone set to 9.6.0.5
- Applies to branch 9.6 added
- Fix Committed on Branch 9.6 added
- Fixed in Maintenance Release 9.6.0.5 added
Please register to edit this issue