From: Jonathan Druart Date: Tue, 16 Oct 2012 07:45:07 +0000 (+0200) Subject: Bug 8015: (follow-up) trap exceptions thrown by SetUTF8Flag() X-Git-Url: http://git.rot13.org/?p=koha.git;a=commitdiff_plain;h=0a176d4648fdce78a31ace4dab75dbe365c6fa64 Bug 8015: (follow-up) trap exceptions thrown by SetUTF8Flag() 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 Signed-off-by: Galen Charlton --- diff --git a/C4/Charset.pm b/C4/Charset.pm index f8ddd63627..2968b5ee1a 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 02f242433d..c045878227 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;