Project

Profile

Help

Bug #5408

closed

Test case message-0312 fails (with either compiler)

Added by Michael Kay almost 3 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
-
Sprint/Milestone:
-
Start date:
2022-03-18
Due date:
% Done:

100%

Estimated time:
Applies to JS Branch:
2, Trunk
Fix Committed on JS Branch:
2, Trunk
Fixed in JS Release:
SEF Generated with:
Platforms:
Company:
-
Contact person:
-
Additional contact persons:
-

Description

This test case outputs a message, which is a sequence of

(a) a variable reference (whose value is a document node)

(b) a call on xsl:document to construct another document node

The final message contains the result of (a) but not of (b).

The problem seems to be in ComplexContentOutputter.append(), which sends the first document node direct to the next Receiver without unwrapping it. The result is that an end document event finds its way to the DOM builder, which it's expecting to be the last event that happens.

Actions #1

Updated by Michael Kay almost 3 years ago

  • Status changed from New to In Progress
  • Priority changed from Low to Normal

Fixed in Expr["message"], by adding calls on ComplexContentOutputter.startDoc() and .endDoc() around the call that pushes the message content. This forces the CCO to have level==1, and a document node emitted at level 1 gets replaced by its children, as required.

Note we also had to change the test case assertion, which was using assert-xml on a non-well-formed XML tree; this is strongly discouraged.

Actions #2

Updated by Michael Kay almost 3 years ago

  • Status changed from In Progress to Resolved
  • Applies to JS Branch 2, Trunk added
  • Fix Committed on JS Branch 2, Trunk added
Actions #3

Updated by Debbie Lockett over 2 years ago

  • Status changed from Resolved to Closed
  • % Done changed from 0 to 100
  • Fixed in JS Release set to SaxonJS 2.4

Bug fix applied in the SaxonJS 2.4 maintenance release.

Please register to edit this issue

Also available in: Atom PDF Tracking page