use Try::Tiny;
use Scalar::Util qw(weaken blessed refaddr);
use DBIx::Class;
-use DBIx::Class::_Util qw(is_exception detect_reinvoked_destructor);
+use DBIx::Class::_Util qw(is_exception detected_reinvoked_destructor);
use DBIx::Class::Carp;
use namespace::clean;
$self->{storage}->throw_exception("Refusing to execute multiple commits on scope guard $self")
if $self->{inactivated};
- $self->{storage}->txn_commit;
+ # FIXME - this assumption may be premature: a commit may fail and a rollback
+ # *still* be necessary. Currently I am not aware of such scenarious, but I
+ # also know the deferred constraint handling is *severely* undertested.
+ # Making the change of "fire txn and never come back to this" in order to
+ # address RT#107159, but this *MUST* be reevaluated later.
$self->{inactivated} = 1;
+ $self->{storage}->txn_commit;
}
sub DESTROY {
- return if &detect_reinvoked_destructor;
+ return if &detected_reinvoked_destructor;
my $self = shift;