Bugzilla – Attachment 32715 Details for
Bug 13082
tools/export.pl fix to forbid adding of all invalid records
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 13082: fix to prevent adding of invalid records in marc file
Bug-13082-fix-to-prevent-adding-of-invalid-records.patch (text/plain), 2.19 KB, created by
Frédéric Demians
on 2014-10-25 10:34:19 UTC
(
hide
)
Description:
Bug 13082: fix to prevent adding of invalid records in marc file
Filename:
MIME Type:
Creator:
Frédéric Demians
Created:
2014-10-25 10:34:19 UTC
Size:
2.19 KB
patch
obsolete
>From ff615da7e7f56c29cdc49ad74b0eda529623443a Mon Sep 17 00:00:00 2001 >From: =?UTF-8?q?St=C3=A9phane=20Delaune?= <stephane.delaune@biblibre.com> >Date: Tue, 21 Oct 2014 18:05:18 +0200 >Subject: [PATCH] Bug 13082: fix to prevent adding of invalid records in marc > file > >Test: > >1. Edit record, add 100.000 chars text to 500a > >2. xml export produce the record, > >3. mrc export do not produce the record, warning on log export.pl: > Record length of 111000 is larger than the MARC spec allows (99999 > bytes). at /usr/share/perl5/MARC/File/USMARC.pm line 314. record > (number 139489) is invalid and therefore not exported because its > reopening generates warnings above at... > >Signed-off-by: Frederic Demians <f.demians@tamil.fr> > >I confirm that exporting biblio records larger than 10000 characters in >ISO2709 produces invalid files. After applying this patch, the culprit >record (too large, but also other inconsistencies preventing record >parsing with MARC::File::USMARC) is not exported anymore. A warning is >produced in Koha Apache log file. Warnings to the user on WUI would be >better, but it isn't the case yet, so it isn't a regression. >--- > tools/export.pl | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > >diff --git a/tools/export.pl b/tools/export.pl >index 97415f8..2919e1e 100755 >--- a/tools/export.pl >+++ b/tools/export.pl >@@ -416,9 +416,10 @@ if ( $op eq "export" ) { > print "\n"; > } > else { >- my (@result_build_tag) = MARC::File::USMARC::_build_tag_directory($record); >- if ($result_build_tag[2] > 99999) { >- warn "record (number $recordid) length ".$result_build_tag[2]." is larger than the MARC spec allows (99999 bytes)"; >+ my $errorcount_on_decode = eval { scalar(MARC::File::USMARC->decode( $record->as_usmarc )->warnings()) }; >+ if ($errorcount_on_decode or $@){ >+ warn $@ if $@; >+ warn "record (number $recordid) is invalid and therefore not exported because its reopening generates warnings above"; > next; > } > print $record->as_usmarc(); >-- >2.1.2
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 13082
:
32332
|
32557
|
32715
|
32718