From 4e47ace931be84957d9b8d89a49811ac3632cc96 Mon Sep 17 00:00:00 2001 From: Mark Tompsett Date: Thu, 6 Mar 2014 01:29:39 -0500 Subject: [PATCH] Bug 11797 - Odd number of elements in hash 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 ... 3) Notice there is an error log entry. 4) Apply the patch 5) Attempt to trigger the bug again 6) Error log entry is not generated. --- C4/AuthoritiesMarc.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm index ee4a349..9409853 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, }; } -- 1.7.9.5