Bug #3961
closedcheckException() method sometimes returns NULL
100%
Description
Reported by user:
The checkException() method sometimes returns NULL for the different processors such as XsltProcessor, SchemaValidator, XQueryProcessor and XPathProcessor.
Investigating the code for the checkException()
method it calls the method checkForException()
in the file SaxonCGlue.c. Internally it is looking for the net.sf.saxon.s9api.SaxonApiException exception. Therefore it ignores other exceptions unless the DEBUG option is on (We should review if this is the right thing to do).
The design is to catch all kinds of exceptions on Java and wrap them as SaxonApiException. But it looks like there are a few places where we are not doing that.
Related issues
Updated by O'Neil Delpratt almost 6 years ago
- Status changed from New to In Progress
Update:
Finally managed to look at this bug issue again. The problem is in the C++ code base for the processors: XSLT, XQuery, Schema and XPath we use in some places the method checkForExceptionCPP
without the user requesting for it which creates an SaxonApiException
object which contains a list of errors found after the execution of the processor. This method clears the JNI exception occurs notification.
Strangely when the user calls the method checkException
this calls the C function checkForException
. At this stage the exception has already been cleared therefore no exception is going to be reported.
This bug is related to #3963
Updated by O'Neil Delpratt almost 6 years ago
- Related to Bug #3963: exceptionOccurred does not return true when exceptionCount() > 1 for XsltProcessor added
Updated by O'Neil Delpratt almost 6 years ago
- Status changed from In Progress to Resolved
- % Done changed from 0 to 100
Better handling of reporting exception messages.
Bug fixed and committed to subversion
Updated by O'Neil Delpratt almost 6 years ago
- Status changed from Resolved to Closed
- Fixed in version set to 1.1.2
Bug fix applied in the Saxon/C 1.1.2 maintenance release.
Please register to edit this issue