Adding some Error proof on GetAuthority
authorHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Wed, 19 Nov 2008 13:58:20 +0000 (14:58 +0100)
committerGalen Charlton <galen.charlton@liblime.com>
Sat, 25 Apr 2009 02:01:36 +0000 (21:01 -0500)
return undef if there is a problem

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
C4/AuthoritiesMarc.pm

index b1029e6..6c56e09 100644 (file)
@@ -711,8 +711,9 @@ sub GetAuthority {
     my $sth=$dbh->prepare("select authtypecode, marcxml from auth_header where authid=?");
     $sth->execute($authid);
     my ($authtypecode, $marcxml) = $sth->fetchrow;
-    my $record=MARC::Record->new_from_xml(StripNonXmlChars($marcxml),'UTF-8',
-        (C4::Context->preference("marcflavour") eq "UNIMARC"?"UNIMARCAUTH":C4::Context->preference("marcflavour")));
+    my $record=eval {MARC::Record->new_from_xml(StripNonXmlChars($marcxml),'UTF-8',
+        (C4::Context->preference("marcflavour") eq "UNIMARC"?"UNIMARCAUTH":C4::Context->preference("marcflavour")))};
+    return undef if ($@);
     $record->encoding('UTF-8');
     if (C4::Context->preference("marcflavour") eq "MARC21") {
       my ($auth_type_tag, $auth_type_subfield) = get_auth_type_location($authtypecode);