From 3ceb75fd18d20dab56f2a0308519a769af4ca07e 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 Content-Type: text/plain; charset=utf-8 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 Signed-off-by: Marcel de Rooy --- C4/Biblio.pm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/C4/Biblio.pm b/C4/Biblio.pm index 0fd56741d4..3924430b77 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