This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 29836 - [FO31] fn:transform circularities
Summary: [FO31] fn:transform circularities
Status: CLOSED FIXED
Alias: None
Product: XPath / XQuery / XSLT
Classification: Unclassified
Component: Functions and Operators 3.1 (show other bugs)
Version: Candidate Recommendation
Hardware: PC Windows NT
: P2 normal
Target Milestone: ---
Assignee: Michael Kay
QA Contact: Mailing list for public feedback on specs from XSL and XML Query WGs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-09-20 15:51 UTC by Abel Braaksma
Modified: 2016-12-16 19:55 UTC (History)
0 users

See Also:


Attachments

Description Abel Braaksma 2016-09-20 15:51:35 UTC
If you call a stylesheet that itself calls fn:transform that in turn, directly or indirectly, calls itself, we have a circularity dependency.

This may be intentional and cause a recursion that ends. It may indicate a failure and cause indefinite recursion.

I don't think there is any way this can be detected, esp. since the execution context is implementation dependent (or defined?). But I think it makes sense to add a little Note explaining that it is allowed and that infinite recursion may go undetected.
Comment 1 Michael Kay 2016-09-20 22:15:35 UTC
I don't think this really needs saying, but I have added the note:

<p>Recursive use of the <code>fn:transform</code> function may lead to catastrophic failures such as non-termination or stack overflow. No error code is assigned to such conditions, since they cannot necessarily be detected by the processor.</p>
Comment 2 Abel Braaksma 2016-09-21 00:41:04 UTC
Thanks