From b3dfd52061e4e25eea10ec6e173b84e16c76c91b Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 16 Oct 2012 09:45:07 +0200 Subject: [PATCH] Bug 8015: Followup Add MARC Modifications Templates Signed-off-by: Kyle M Hall Signed-off-by: Leila Bug 8015: Catch error in the SetUTF8Flag routine The eval avoids the interface to run endlessly if an error occurred. Signed-off-by: Kyle M Hall Signed-off-by: Leila --- C4/Charset.pm | 37 ++++++++++++++++++++----------------- C4/ImportBatch.pm | 4 ++-- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/C4/Charset.pm b/C4/Charset.pm index f8ddd63..2968b5e 100644 --- a/C4/Charset.pm +++ b/C4/Charset.pm @@ -131,23 +131,26 @@ But since it handles charset, and MARC::Record, it finds its way in that package =cut sub SetUTF8Flag{ - my ($record, $nfd)=@_; - return unless ($record && $record->fields()); - foreach my $field ($record->fields()){ - if ($field->tag()>=10){ - my @subfields; - foreach my $subfield ($field->subfields()){ - push @subfields,($$subfield[0],NormalizeString($$subfield[1],$nfd)); - } - my $newfield=MARC::Field->new( - $field->tag(), - $field->indicator(1), - $field->indicator(2), - @subfields - ); - $field->replace_with($newfield); - } - } + my ($record, $nfd)=@_; + return unless ($record && $record->fields()); + foreach my $field ($record->fields()){ + if ($field->tag()>=10){ + my @subfields; + foreach my $subfield ($field->subfields()){ + push @subfields,($$subfield[0],NormalizeString($$subfield[1],$nfd)); + } + eval { + my $newfield=MARC::Field->new( + $field->tag(), + $field->indicator(1), + $field->indicator(2), + @subfields + ); + $field->replace_with($newfield); + }; + warn "ERROR occurred in SetUTF8Flag $@" if $@; + } + } } =head2 NormalizeString diff --git a/C4/ImportBatch.pm b/C4/ImportBatch.pm index bb8dd73..5523cb8 100644 --- a/C4/ImportBatch.pm +++ b/C4/ImportBatch.pm @@ -26,7 +26,7 @@ use C4::Biblio; use C4::Items; use C4::Charset; use C4::AuthoritiesMarc; -use Koha::MarcModificationTemplates; +use C4::MarcModificationTemplates; use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); @@ -324,7 +324,7 @@ sub ModAuthInBatch { =cut -sub BatchStageMarcRecords { +sub BatchStageMarcRecords { my $record_type = shift; my $encoding = shift; my $marc_records = shift; -- 1.7.2.5