From be59e84075767f51f856949380081059a6aee364 Mon Sep 17 00:00:00 2001 From: Mark Tompsett Date: Thu, 6 Mar 2014 01:29:39 -0500 Subject: [PATCH] Bug 11797: fix odd number of elements in hash warning (MARC21) This was discovered when someone triggered an authority search on an authority record that was missing what is assumed the default subfield for a given field. It, however, also can be triggered in an OPAC authority search by looking at the record that lacks the default subfield for a given field. TEST PLAN --------- 1) Create an authority record with 180$x and NOT 180$v. See C4::AuthoritiesMarc::BuildSummary in the 1.. foreach loop for known tags and default values. The default subfields are the first letter of the $subfields_to_report string. 2) Trigger the bug: Method 1: /cgi-bin/koha/opac-authoritiesdetail.pl?authid=# Where # is the authority id of your tweaked record. The error occurs in Normal view. Method 2: Home -> Cataloging -> + New record -> Click the 'Tag Editor' on 100$a Editing of $a to $b and back may be required. 3) Notice there is an error log entry. 4) Apply the patch 5) Attempt to trigger the bug again 6) That specific error log entry is not generated. Signed-off-by: Marcel de Rooy Could generate the warning with a missing 151$a with both methods. No warning anymore after applying this patch. Signed-off-by: Jonathan Druart Signed-off-by: Galen Charlton (cherry picked from commit 129bc3281180d892659d3ad1ef253fbc7ec6f316) Signed-off-by: Fridolin Somers --- C4/AuthoritiesMarc.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm index 1c87285d57..beadaf626b 100644 --- a/C4/AuthoritiesMarc.pm +++ b/C4/AuthoritiesMarc.pm @@ -1034,15 +1034,17 @@ sub BuildSummary { $subfields_to_report = 'vxyz'; } if ($subfields_to_report) { + my $hemain = $field->subfield( substr($subfields_to_report, 0, 1) ); push @authorized, { heading => $field->as_string($subfields_to_report), - hemain => $field->subfield( substr($subfields_to_report, 0, 1) ), + hemain => $hemain, field => $tag, }; } else { + my $hemain = $field->subfield( 'a' ); push @authorized, { heading => $field->as_string(), - hemain => $field->subfield('a'), + hemain => $hemain, field => $tag, }; } -- 2.39.5