When an exception occurs in a SAX callback (or maybe any callback), this exception is not reraised to the code invoking the parse method. Instead it seems to be kept "inside" 4suite and is reraised at some random other event.
Attached code demonstrates the problem.
My version of 4suite claims to be 1.0rc1, it's installed from the debian package versioned as 0.99cvs20060405-1.1.
Logged In: YES
user_id=361285
Originator: YES
The exception is not properly passed because the parse method returns None even though Expat_FatalError has been called.
Attached patch "fixes" this by not only checking the status returned by Expat_ParseDocument but also checking if a Python exception is set in the current thread. Obviously this is a kludge and Expat_ParseDocument should return an error status but I haven't been able to work out why it doesn't yet.
File Added: 4suite.diff
kludge to fix the problem