From 086f23d45af1df415fc155652f1271fefb8c8c25 Mon Sep 17 00:00:00 2001
From: Jonathan Druart <jonathan.druart@biblibre.com>
Date: Wed, 31 Oct 2012 14:31:07 +0100
Subject: [PATCH] Bug 8015: Catch error in the SetUTF8Flag routine

The eval avoids the interface to run endlessly if an error occurred.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Leila <koha.aixmarseille@gmail.com>
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
---
 C4/Charset.pm     |   37 ++++++++++++++++++++-----------------
 C4/ImportBatch.pm |    2 +-
 2 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/C4/Charset.pm b/C4/Charset.pm
index f8ddd63..2968b5e 100644
--- a/C4/Charset.pm
+++ b/C4/Charset.pm
@@ -131,23 +131,26 @@ But since it handles charset, and MARC::Record, it finds its way in that package
 =cut
 
 sub SetUTF8Flag{
-	my ($record, $nfd)=@_;
-	return unless ($record && $record->fields());
-	foreach my $field ($record->fields()){
-		if ($field->tag()>=10){
-			my @subfields;
-			foreach my $subfield ($field->subfields()){
-				push @subfields,($$subfield[0],NormalizeString($$subfield[1],$nfd));
-			}
-			my $newfield=MARC::Field->new(
-							$field->tag(),
-							$field->indicator(1),
-							$field->indicator(2),
-							@subfields
-						);
-			$field->replace_with($newfield);
-		}
-	}
+    my ($record, $nfd)=@_;
+    return unless ($record && $record->fields());
+    foreach my $field ($record->fields()){
+        if ($field->tag()>=10){
+            my @subfields;
+            foreach my $subfield ($field->subfields()){
+                push @subfields,($$subfield[0],NormalizeString($$subfield[1],$nfd));
+            }
+            eval {
+                my $newfield=MARC::Field->new(
+                            $field->tag(),
+                            $field->indicator(1),
+                            $field->indicator(2),
+                            @subfields
+                        );
+                $field->replace_with($newfield);
+            };
+            warn "ERROR occurred in SetUTF8Flag $@" if $@;
+        }
+    }
 }
 
 =head2 NormalizeString
diff --git a/C4/ImportBatch.pm b/C4/ImportBatch.pm
index c8ee48d..5523cb8 100644
--- a/C4/ImportBatch.pm
+++ b/C4/ImportBatch.pm
@@ -324,7 +324,7 @@ sub ModAuthInBatch {
 
 =cut
 
-sub  BatchStageMarcRecords {
+sub BatchStageMarcRecords {
     my $record_type = shift;
     my $encoding = shift;
     my $marc_records = shift;
-- 
1.7.9.5