Project

Profile

Help

Bug #5684

closed

[SAXON 11] Message emitter not working

Added by hamdi karray over 2 years ago. Updated about 2 years ago.

Status:
Closed
Priority:
Low
Assignee:
Category:
Documentation
Sprint/Milestone:
Start date:
2022-09-13
Due date:
% Done:

100%

Estimated time:
Legacy ID:
Applies to branch:
11, trunk
Fix Committed on Branch:
11, trunk
Fixed in Maintenance Release:
Platforms:
Java

Description

Hello, i notice that the -m option is no longer supported from 11 version but in the documentation the messageEmitter attribute in configuration file seems to be supported but not working ? perhaps a mistake in the documentation. Thanks

Actions #1

Updated by Michael Kay over 2 years ago

  • Category set to Documentation
  • Status changed from New to Resolved
  • Assignee set to Michael Kay
  • Priority changed from High to Low
  • Applies to branch 11, trunk added
  • Fix Committed on Branch 11, trunk added

Thank you. I have updated the documentation. All the interfaces to get and set a MessageEmitter are still there, for backwards compatibility, but in 11.x they are ignored.

(For reference, the problem with the MessageEmitter API was that there was no way of making it thread-safe.)

Actions #2

Updated by hamdi karray over 2 years ago

Thank-you for your prompt response. For my part, I do a lot of pxslt rocessing in multithreading mode by putting a class that translates the xsl: message into log4j and it works very well. Maybe you are referring to multithreading within the same xslt (saxon:treads, allowMultiThreading ...) ?

Actions #3

Updated by Michael Kay over 2 years ago

Correct, Saxon can do multithreading within a single transformation (e.g. if you do xsl:result-document in Saxon-EE). The MessageEmitter interface involved making multiple calls to the same MessageEmitter for a single xsl:message instruction, and if two xsl:message instructions were executed in different threads there was no way the MessageEmitter could disentangle them.

We replaced the MessageEmitter quite a while ago with the MessageListener interface which made a single call to the supplied callback. But we've since revised that to capture all information about a message in a Message object, because we found it was difficult to extend the interface to supply additional information such as the location of the xsl:message instruction.

Actions #4

Updated by Debbie Lockett about 2 years ago

  • Status changed from Resolved to Closed
  • % Done changed from 0 to 100

Documentation 11 updated online.

Please register to edit this issue

Also available in: Atom PDF