From: Moritz Bunkus Date: Fri, 10 Feb 2017 12:30:33 +0000 (+0100) Subject: SL::DB: Exception nur dann mit ->isa/->rethrow behandeln, wenn geblesstes Objekt X-Git-Tag: release-3.5.4~1508 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=abc355d2775cda30c745a277faf1307acb5a249b;p=kivitendo-erp.git SL::DB: Exception nur dann mit ->isa/->rethrow behandeln, wenn geblesstes Objekt ref($error) gilt auch für z.B. geworfene Arrayreferenzen, welche aber nicht geblesst sind, wodurch man auf ihnen keine Funktionen aufrufen kann. --- diff --git a/SL/DB.pm b/SL/DB.pm index 40c8a9596..29d0090ca 100644 --- a/SL/DB.pm +++ b/SL/DB.pm @@ -7,6 +7,7 @@ use Data::Dumper; use English qw(-no_match_vars); use Rose::DB; use Rose::DBx::Cache::Anywhere; +use Scalar::Util qw(blessed); use base qw(Rose::DB); @@ -138,7 +139,7 @@ sub with_transaction { : $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 {