From 129bc3281180d892659d3ad1ef253fbc7ec6f316 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 --- C4/AuthoritiesMarc.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm index ee4a349f6a..94098532f9 100644 --- a/C4/AuthoritiesMarc.pm +++ b/C4/AuthoritiesMarc.pm @@ -1044,15 +1044,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