Bug 17088 - Bad MARC XML can halt export_records.pl

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 <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
(cherry picked from commit e72a8ab260)
Signed-off-by: Frédéric Demians <f.demians@tamil.fr>
This commit is contained in:
Kyle M Hall 2016-08-09 13:08:17 +00:00 committed by Frédéric Demians
parent f3917fc8cb
commit cb1ee8e3cc
1 changed files with 3 additions and 0 deletions

View File

@ -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";
}