From cb1ee8e3ccbc8bbce47b9db502a90c09e2a6ec3f Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Tue, 9 Aug 2016 13:08:17 +0000 Subject: [PATCH] Bug 17088 - Bad MARC XML can halt export_records.pl MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit If export_records.pl encounters a record that fails to load correctly as a MARC::Record the export process will fail and only the records encountered up to that point will be exported. Test Plan: 1) Pick a record in your database, and replace the biblioitems.marcxml field with some random characters 2) Export your records using the command: misc/export_records.pl --format xml --record-type bibs --filename /tmp/biblios.xml 3) Note you get an error and the script ends prematurely 4) Apply this patch 5) Repeat step 2 6) Note the full record set is exported ( except for your bad record ) 7) Note an error is still generated for your bad record ( useful for tracking down bad records ). Signed-off-by: Marcel de Rooy Signed-off-by: Jonathan Druart Signed-off-by: Jonathan Druart Signed-off-by: Brendan Gallagher (cherry picked from commit e72a8ab260abed11b02266d77bc17d831884ed40) Signed-off-by: Frédéric Demians --- Koha/Exporter/Record.pm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Koha/Exporter/Record.pm b/Koha/Exporter/Record.pm index ee76d8a466..c441550bfa 100644 --- a/Koha/Exporter/Record.pm +++ b/Koha/Exporter/Record.pm @@ -26,6 +26,8 @@ sub _get_record_for_export { return; } + return unless $record; + if ($dont_export_fields) { for my $f ( split / /, $dont_export_fields ) { if ( $f =~ m/^(\d{3})(.)?$/ ) { @@ -127,6 +129,7 @@ sub export { print "\n"; for my $record_id (@$record_ids) { my $record = _get_record_for_export( { %$params, record_id => $record_id } ); + next unless $record; print MARC::File::XML::record($record); print "\n"; } -- 2.39.5