--- nfo/perl/libs/Data/Storage/Handler/Abstract.pm 2002/10/10 03:44:07 1.1 +++ nfo/perl/libs/Data/Storage/Handler/Abstract.pm 2002/10/17 00:08:07 1.2 @@ -1,8 +1,11 @@ ################################# # -# $Id: Abstract.pm,v 1.1 2002/10/10 03:44:07 cvsjoko Exp $ +# $Id: Abstract.pm,v 1.2 2002/10/17 00:08:07 joko Exp $ # # $Log: Abstract.pm,v $ +# Revision 1.2 2002/10/17 00:08:07 joko +# + bugfixes regarding "deep recursion" stuff +# # Revision 1.1 2002/10/10 03:44:07 cvsjoko # + new # @@ -26,8 +29,8 @@ my $class = ref($invocant) || $invocant; # logging info about the actual handler called - $logger->debug( __PACKAGE__ . "->" . "new()" ); $logger->debug( "$invocant->new( @_ )" ); + #$logger->debug( __PACKAGE__ . "->" . "new()" ); # handle meta data my $metainfo = _getMetaInfo($class); @@ -56,7 +59,7 @@ # - why: debug-messages are on a very low level including every data-operation to "Data::Storage(::Handler::X)", # so e.g. a "$storage->insert" would trigger another "$storage->insert" itself # which leads to a infinite recursion loop (deep recursion) - # - solution: locks! (by Hack or via Perl "local"s) + # - solution: locks! (by Hack or (maybe) via Perl "local"s) my $self = shift; @@ -77,7 +80,10 @@ # test for COREHANDLE if (!$self->{COREHANDLE}) { - $logger->error( __PACKAGE__ . "[$self->{metainfo}->{type}]" . ": " . "COREHANDLE is undefined while trying to execute method \"$methodname\"" ); + #print "no COREHANDLE", "\n"; + if (!$self->{lock_info}->{log_lock}) { + $logger->error( __PACKAGE__ . "[$self->{metainfo}->{type}]" . ": " . "COREHANDLE is undefined while trying to execute method \"$methodname\"" ); + } return; }