| Summary: | stage-marc-import.pl does not show warning messages on MARC error | ||
|---|---|---|---|
| Product: | Koha | Reporter: | Barton Chittenden <barton> |
| Component: | MARC Bibliographic record staging/import | Assignee: | Galen Charlton <gmcharlt> |
| Status: | NEW --- | QA Contact: | Testopia <testopia> |
| Severity: | enhancement | ||
| Priority: | P5 - low | CC: | barton, catrina |
| Version: | Main | ||
| Hardware: | All | ||
| OS: | All | ||
| GIT URL: | Initiative type: | --- | |
| Sponsorship status: | --- | Comma delimited list of Sponsors: | |
| Crowdfunding goal: | 0 | Patch complexity: | --- |
| Documentation contact: | Documentation submission: | ||
| Text to go in the release notes: | Version(s) released in: | ||
| Circulation function: | |||
| Attachments: | Example data -- a marc-utf8 file with errors | ||
|
Description
Barton Chittenden
2015-11-30 15:41:27 UTC
Created attachment 45231 [details]
Example data -- a marc-utf8 file with errors
The attached file throws the following message in intranet-error.log:
stage-marc-import.pl: Argument "1 15" isn't numeric in integer addition (+) at /usr/share/perl5/MARC/File/USMARC.pm line 166.
Inspecting that code, I see
156 # Check directory validity
157 ($tagno =~ /^[0-9A-Za-z]{3}$/)
158 or $marc->_warn( "Invalid tag in directory $location: \"$tagno\"" );
159
160 ($len =~ /^\d{4}$/)
161 or $marc->_warn( "Invalid length in directory $location tag $tagno: \"$len\"" );
162
163 ($offset =~ /^\d{5}$/)
164 or $marc->_warn( "Invalid offset in directory $location tag $tagno: \"$offset\"" );
165
166 ($offset + $len <= $reclen)
167 or $marc->_warn( "Directory entry $location runs off the end of the record tag $tagno" );
The two elements in the addition in line 166 are $offset and $len. The argument "1 15" doesn't match the regular expression for either $len (^\d{4}$) nor $offset (^\d{5}$), so it should have triggered one of the $marc->_warn methods, but these warnings are not sent to intranet-error.log nor to the screen.
|