From abc355d2775cda30c745a277faf1307acb5a249b Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Fri, 10 Feb 2017 13:30:33 +0100 Subject: [PATCH] SL::DB: Exception nur dann mit ->isa/->rethrow behandeln, wenn geblesstes Objekt MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit ref($error) gilt auch für z.B. geworfene Arrayreferenzen, welche aber nicht geblesst sind, wodurch man auf ihnen keine Funktionen aufrufen kann. --- SL/DB.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 { -- 2.20.1