[Koha-patches] [biblibre-integration] Bug fix : 3618

Henri-Damien LAURENT henridamien.laurent at biblibre.com
Mon Sep 14 21:17:52 CEST 2009


Add some error proof on BuildUnimarcHierarchies
---
 C4/AuthoritiesMarc.pm |   43 +++++++++++++++++++++++--------------------
 1 files changed, 23 insertions(+), 20 deletions(-)

diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm
index 3be5ee4..a423738 100644
--- a/C4/AuthoritiesMarc.pm
+++ b/C4/AuthoritiesMarc.pm
@@ -1164,26 +1164,28 @@ sub BuildUnimarcHierarchies{
   } else {
     my $record = GetAuthority($authid);
     my $found;
-    foreach my $field ($record->field('550')){
-      if ($field->subfield('5') && $field->subfield('5') eq 'g'){
-        my $parentrecord = GetAuthority($field->subfield('3'));
-        my $localresult=$hierarchies;
-        my $trees;
-        $trees = BuildUnimarcHierarchies($field->subfield('3'));
-        my @trees;
-        if ($trees=~/;/){
-           @trees = split(/;/,$trees);
-        } else {
-           push @trees, $trees;
-        }
-        foreach (@trees){
-          $_.= ",$authid";
-        }
-        @globalresult = (@globalresult, at trees);
-        $found=1;
-      }
-      $hierarchies=join(";", at globalresult);
-    }
+	if ($record){
+		foreach my $field ($record->field('550')){
+		  if ($field->subfield('5') && $field->subfield('5') eq 'g'){
+			my $parentrecord = GetAuthority($field->subfield('3'));
+			my $localresult=$hierarchies;
+			my $trees;
+			$trees = BuildUnimarcHierarchies($field->subfield('3'));
+			my @trees;
+			if ($trees=~/;/){
+			   @trees = split(/;/,$trees);
+			} else {
+			   push @trees, $trees;
+			}
+			foreach (@trees){
+			  $_.= ",$authid";
+			}
+			@globalresult = (@globalresult, at trees);
+			$found=1;
+		  }
+		  $hierarchies=join(";", at globalresult);
+		}
+	}
     #Unless there is no ancestor, I am alone.
     $hierarchies="$authid" unless ($hierarchies);
   }
@@ -1217,6 +1219,7 @@ sub BuildUnimarcHierarchy{
   my $record = shift @_;
   my $class = shift @_;
   my $authid_constructed = shift @_;
+  return undef unless ($record);
   my $authid=$record->subfield('2..','3');
   my %cell;
   my $parents=""; my $children="";
-- 
1.6.0.4






More information about the Koha-patches mailing list