Some cleanups around loading/use of DBIx::Class::Exception (no func. changes)
Peter Rabbitson [Sun, 20 Jan 2013 18:23:48 +0000 (19:23 +0100)]
lib/DBIx/Class.pm
lib/DBIx/Class/ResultSet.pm
lib/DBIx/Class/ResultSetColumn.pm
lib/DBIx/Class/ResultSource.pm
lib/DBIx/Class/ResultSourceHandle.pm
lib/DBIx/Class/Row.pm
lib/DBIx/Class/SQLMaker.pm
lib/DBIx/Class/Schema.pm
lib/DBIx/Class/Storage/BlockRunner.pm
lib/DBIx/Class/Storage/DBI.pm

index 3518d42..15718f6 100644 (file)
@@ -58,6 +58,7 @@ use DBIx::Class::Optional::Dependencies;
 
 use base qw/DBIx::Class::Componentised DBIx::Class::AccessorGroup/;
 use DBIx::Class::StartupCheck;
+use DBIx::Class::Exception;
 
 __PACKAGE__->mk_group_accessors(inherited => '_skip_namespace_frames');
 __PACKAGE__->_skip_namespace_frames('^DBIx::Class|^SQL::Abstract|^Try::Tiny|^Class::Accessor::Grouped|^Context::Preserve');
index 204b75f..545f993 100644 (file)
@@ -4,7 +4,6 @@ use strict;
 use warnings;
 use base qw/DBIx::Class/;
 use DBIx::Class::Carp;
-use DBIx::Class::Exception;
 use DBIx::Class::ResultSetColumn;
 use Scalar::Util qw/blessed weaken/;
 use Try::Tiny;
index f372e9d..92abc07 100644 (file)
@@ -5,7 +5,6 @@ use warnings;
 
 use base 'DBIx::Class';
 use DBIx::Class::Carp;
-use DBIx::Class::Exception;
 
 # not importing first() as it will clash with our own method
 use List::Util ();
@@ -438,7 +437,7 @@ See L<DBIx::Class::Schema/throw_exception> for details.
 =cut
 
 sub throw_exception {
-  my $self=shift;
+  my $self = shift;
 
   if (ref $self && $self->{_parent_resultset}) {
     $self->{_parent_resultset}->throw_exception(@_);
index 7dfb688..2874611 100644 (file)
@@ -6,7 +6,6 @@ use warnings;
 use DBIx::Class::ResultSet;
 use DBIx::Class::ResultSourceHandle;
 
-use DBIx::Class::Exception;
 use DBIx::Class::Carp;
 use Devel::GlobalDestruction;
 use Try::Tiny;
index e0dbd08..733db83 100644 (file)
@@ -5,9 +5,7 @@ use warnings;
 
 use base qw/DBIx::Class/;
 
-use DBIx::Class::Exception;
 use Try::Tiny;
-
 use namespace::clean;
 
 use overload
index 4c83edc..4c7110f 100644 (file)
@@ -5,7 +5,6 @@ use warnings;
 
 use base qw/DBIx::Class/;
 
-use DBIx::Class::Exception;
 use Scalar::Util 'blessed';
 use List::Util 'first';
 use Try::Tiny;
index c5b0888..1162280 100644 (file)
@@ -40,7 +40,6 @@ use mro 'c3';
 
 use Sub::Name 'subname';
 use DBIx::Class::Carp;
-use DBIx::Class::Exception;
 use namespace::clean;
 
 __PACKAGE__->mk_group_accessors (simple => qw/quote_char name_sep limit_dialect/);
index 6fca48e..3bf644a 100644 (file)
@@ -3,7 +3,6 @@ package DBIx::Class::Schema;
 use strict;
 use warnings;
 
-use DBIx::Class::Exception;
 use DBIx::Class::Carp;
 use Try::Tiny;
 use Scalar::Util qw/weaken blessed/;
@@ -1058,7 +1057,6 @@ default behavior will provide a detailed stack trace.
 
 =cut
 
-my $false_exception_action_warned;
 sub throw_exception {
   my $self = shift;
 
@@ -1071,13 +1069,12 @@ sub throw_exception {
         ." (original error: $_[0])"
       );
     }
-    elsif(! $false_exception_action_warned++) {
-      carp (
-          "The exception_action handler installed on $self returned false instead"
-        .' of throwing an exception. This behavior has been deprecated, adjust your'
-        .' handler to always rethrow the supplied error.'
-      );
-    }
+
+    carp_unique (
+      "The exception_action handler installed on $self returned false instead"
+    .' of throwing an exception. This behavior has been deprecated, adjust your'
+    .' handler to always rethrow the supplied error.'
+    );
   }
 
   DBIx::Class::Exception->throw($_[0], $self->stacktrace);
index 8b9ea26..404e480 100644 (file)
@@ -76,7 +76,7 @@ has retried_count => (
   default => quote_sub(q{ 0 }),
   lazy => 1,
   trigger => quote_sub(q{
-    DBIx::Class::Exception->throw(sprintf (
+    $_[0]->throw_exception( sprintf (
       'Exceeded max_retried_count amount of %d, latest exception: %s',
       $_[0]->max_retried_count, $_[0]->last_exception
     )) if $_[0]->max_retried_count < ($_[1]||0);
@@ -93,10 +93,12 @@ has exception_stack => (
 
 sub last_exception { shift->exception_stack->[-1] }
 
+sub throw_exception { shift->storage->throw_exception (@_) }
+
 sub run {
   my $self = shift;
 
-  DBIx::Class::Exception->throw('run() takes no arguments') if @_;
+  $self->throw_exception('run() takes no arguments') if @_;
 
   $self->_reset_exception_stack;
   $self->_reset_retried_count;
index 19bc2bc..4141a15 100644 (file)
@@ -8,7 +8,6 @@ use base qw/DBIx::Class::Storage::DBIHacks DBIx::Class::Storage/;
 use mro 'c3';
 
 use DBIx::Class::Carp;
-use DBIx::Class::Exception;
 use Scalar::Util qw/refaddr weaken reftype blessed/;
 use List::Util qw/first/;
 use Sub::Name 'subname';