Bug 11269: fix incorrect use of MARC::Field->subfield()
authorTomas Cohen Arazi <tomascohen@gmail.com>
Mon, 18 Nov 2013 22:04:56 +0000 (19:04 -0300)
committerGalen Charlton <gmc@esilibrary.com>
Tue, 19 Nov 2013 16:22:46 +0000 (16:22 +0000)
MARC::Record 2.0.6+ enables the warnings pragma, and as a
consequence, started logging cases where a routine in
C4::Search was calling MARC::Field->subfield() with an undef
subfield label.  This patch removes the log noise.

To test:
- Run prove -v t/db_dependent/Search.t
- There will be warnings about
  "Use of uninitialized value $code_wanted in string" in MARC::Field.
- Apply the patch.
- Those warnings are gone.

Signed-off-by: Liz Rea <liz@catalyst.net.nz>
Tests now pass

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
C4/Search.pm

index bec1f89..cd43ea4 100644 (file)
@@ -1681,7 +1681,9 @@ sub searchResults {
     while ( ( my $column ) = $sth2->fetchrow ) {
         my ( $tagfield, $tagsubfield ) =
           &GetMarcFromKohaField( "items." . $column, "" );
-        $subfieldstosearch{$column} = $tagsubfield;
+        if ( defined $tagsubfield ) {
+            $subfieldstosearch{$column} = $tagsubfield;
+        }
     }
 
     # handle which records to actually retrieve