# Which listener's exception reaches the caller, and whether the order row survives


--- plain listener throws ---
caller saw: IllegalStateException: plain listener failed
order row survived: false

--- beforeCommit listener throws ---
caller saw: IllegalStateException: BEFORE_COMMIT listener failed
order row survived: false

--- afterCommit listener throws ---
caller saw: nothing
order row survived: true
logged: TransactionSynchronization.afterCompletion threw exception
logged: java.lang.IllegalStateException: AFTER_COMMIT listener failed
