From 3172f9c75a938feb84d4a10366a3e03dac87cf12 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Mon, 1 Apr 2024 14:32:08 +0000 Subject: [PATCH] Bug 36473: Handle Invalid Metadata Exceptions in totalissues.pl This patch wraps the call for record in an eval, and catches any invalid metadata exceptions, letting the warning show, but allowing the script to continue To test: 1 - In default KTD record 369 has problems, otherwise you need to break a record 2 - Run : misc/cronjobs/update_totalissues.pl --use-stats --commit=1000 -v 3 - It dies at record 369 (or the one you broke) 4 - Apply patch 5 - Run again 6 - It succeeds, but skips the bad record Signed-off-by: David Nind --- C4/Biblio.pm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/C4/Biblio.pm b/C4/Biblio.pm index 0fd56741d4c..3924430b77e 100644 --- a/C4/Biblio.pm +++ b/C4/Biblio.pm @@ -3057,9 +3057,12 @@ sub UpdateTotalIssues { return; } - my $record = $biblio->metadata->record; - unless ($record) { - carp "UpdateTotalIssues could not get biblio record"; + my $record; + eval { $record = $biblio->metadata->record }; + if ($@) { + my $exception = $@; + $exception->rethrow unless ( $exception->isa('Koha::Exceptions::Metadata::Invalid') ); + warn "UpdateTotalIssues could not get biblio record"; return; } my $biblioitem = $biblio->biblioitem; -- 2.30.2