# File lib/after_commit/connection_adapters.rb, line 23
        def commit_db_transaction_with_callback
          increment_transaction_pointer
          result    = nil
          begin
            trigger_before_commit_callbacks
            trigger_before_commit_on_create_callbacks
            trigger_before_commit_on_update_callbacks
            trigger_before_commit_on_save_callbacks
            trigger_before_commit_on_destroy_callbacks

            result = commit_db_transaction_without_callback
            @disable_rollback = true

            trigger_after_commit_callbacks
            trigger_after_commit_on_create_callbacks
            trigger_after_commit_on_update_callbacks
            trigger_after_commit_on_save_callbacks
            trigger_after_commit_on_destroy_callbacks
            result
          rescue
            # Need to decrement the transaction pointer before calling
            # rollback... to ensure it is not incremented twice
            unless @disable_rollback
              decrement_transaction_pointer
              @already_decremented = true
            end
            
            # We still want to raise the exception.
            raise
          ensure
            AfterCommit.cleanup(self)
            decrement_transaction_pointer unless @already_decremented
          end
        end