Add support for tracking manual exceptions within transactions #119
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Manual errors tracked on transactions (i.e custom validations) were not tracked.
This happened because whenever the transaction failed, it was rollbacked, and as the error tracking depends on the persisting of a record on the db, that record was also rollbacked along the transaction that contained it.
Now we've included a way of allowing the
ExceptionHunter::Error
to be persisted as a part of a new thread not implicated on the transaction itself, so it (alone, the rest of the transaction will) won't be rollbacked.This new thread is only created if the tracking happens within a transaction.
Examples:
Before:
The whole transaction is rollbacked and no records have been persisted
Now:
Only the outer transaction is rollbacked and the
ExceptionHunter::Error
remains persisted.