Comment 17 for bug 504291

Revision history for this message
Stuart Bishop (stub) wrote :

The OOPS is certainly logged after the request is finished. This is in endRequest(), after the request and any error handling has been completed.

This is all tied up with error handling I think.

                    try:
                        try:
                            request.processInputs()
                            publication.beforeTraversal(request)
                            [...]
                            publication.afterCall(request, obj)
                        except:
                            exc_info = sys.exc_info()
                            publication.handleException(
                                obj, request, exc_info, True)
                   finally:
                        publication.endRequest(request, obj)

transaction.begin() is called in beforeTraversal(). transaction.commit() or transaction.abort() in afterCall(). transaction.abort() is called in handleException().

But we find in endRequest that a Store is in an invalid state, which indicates transaction.commit() or transaction.abort() was not called.