BuildUnimarcHierarchies : Fixing infinite loop
authorHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Tue, 6 Apr 2010 11:27:20 +0000 (13:27 +0200)
committerHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Fri, 14 May 2010 07:27:45 +0000 (09:27 +0200)
When referenced authority in 5XX$3 would be the same as the current authid, the script would get into infinite loop

C4/AuthoritiesMarc.pm

index 95e0655..7d9a2b4 100644 (file)
@@ -1060,6 +1060,7 @@ sub BuildUnimarcHierarchies{
     foreach my $field ($record->field('5..')){
       if ($field->subfield('5') && $field->subfield('5') eq 'g'){
                my $subfauthid=_get_authid_subfield($field);
+        next if ($subfauthid eq $authid);
         my $parentrecord = GetAuthority($subfauthid);
         my $localresult=$hierarchies;
         my $trees;