module AppfluxRuby::Rails::ActiveRecord
ActiveRecord
< 4.2 has a bug with regard to swallowing exceptions in the after_commit
and the after_rollback
hooks: it doesn't bubble up exceptions from there.
This module makes it possible to report exceptions occurring there.
@see github.com/rails/rails/pull/14488 Detailed description of the
bug and the fix
Constants
- KINDS
@return [Array<Symbol>] the hooks that needs fixing
Public Instance Methods
run_callbacks(kind, *args, &block)
click to toggle source
Patches default run_callbacks
, which is capable of notifying about
exceptions.
Calls superclass method
# File lib/appflux_ruby/rails/active_record.rb, line 20 def run_callbacks(kind, *args, &block) # Let the post process handle the exception if it's not a bugged hook. return super unless KINDS.include?(kind) # Handle the exception ourselves. The 'ex' exception won't be # propagated, therefore we must notify it here. begin super rescue Exception => ex # TODO: Need to replace with Logger. ::AppfluxRuby::BugfluxNotifier.notify(ex) raise ex end end