]> wagnertech.de Git - mfinanz.git/blobdiff - SL/DB.pm
Mailer: Encoding der Namen von Dateianhängen gefixt
[mfinanz.git] / SL / DB.pm
index 40c8a9596a06541fd37a30d55df6542545ab08cb..c678ed14fca81bf8125787b9c2c6b9c73623a06d 100644 (file)
--- a/SL/DB.pm
+++ b/SL/DB.pm
@@ -6,11 +6,12 @@ use Carp;
 use Data::Dumper;
 use English qw(-no_match_vars);
 use Rose::DB;
-use Rose::DBx::Cache::Anywhere;
+use SL::DB::Helper::Cache;
+use Scalar::Util qw(blessed);
 
 use base qw(Rose::DB);
 
-__PACKAGE__->db_cache_class('Rose::DBx::Cache::Anywhere');
+__PACKAGE__->db_cache_class('SL::DB::Helper::Cache');
 __PACKAGE__->use_private_registry;
 
 my (%_db_registered);
@@ -131,14 +132,14 @@ sub with_transaction {
   my $rv = 1;
 
   local $@;
-
+  my $return_array = wantarray;
   eval {
-    wantarray
+    $return_array
       ? $self->do_transaction(sub { @result = $code->(@args) })
       : $self->do_transaction(sub { $result = $code->(@args) });
   } or do {
     my $error = $self->error;
-    if (ref $error) {
+    if (blessed $error) {
       if ($error->isa('SL::X::DBError')) {
         # gobble the exception
       } else {
@@ -149,7 +150,7 @@ sub with_transaction {
     }
   };
 
-  return wantarray ? @result : $result;
+  return $return_array ? @result : $result;
 }
 
 1;