Project

Profile

Help

Bug #2324

closed

Focus-dependent attribute sets

Added by Michael Kay over 9 years ago. Updated almost 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
XSLT conformance
Sprint/Milestone:
Start date:
2015-03-03
Due date:
% Done:

100%

Estimated time:
Legacy ID:
Applies to branch:
9.6
Fix Committed on Branch:
9.6
Fixed in Maintenance Release:
Platforms:

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.

Actions #1

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.

Actions #2

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.

Actions #3

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

Also available in: Atom PDF