From e39f8d9a7c16350076993ac72456a653b32431fd Mon Sep 17 00:00:00 2001
From: Jonathan Druart <jonathan.druart@biblibre.com>
Date: Mon, 12 May 2014 13:47:44 +0200
Subject: [PATCH] Bug 11700: Avoid to try to delete the authority twice

---
 C4/AuthoritiesMarc.pm |    5 ++++-
 authorities/merge.pl  |    8 ++++----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm
index ec5e615..2ea2c5a 100644
--- a/C4/AuthoritiesMarc.pm
+++ b/C4/AuthoritiesMarc.pm
@@ -1551,7 +1551,10 @@ sub merge {
         }
     }#foreach $marc
 
-    DelAuthority($mergefrom) if ($mergefrom != $mergeto);
+    if ($mergefrom != $mergeto) {
+        my $number_of_authorities_deleted = DelAuthority($mergefrom);
+        die "Authority $mergefrom has not been deleted";
+    }
 
     return @editedbiblios;
 }
diff --git a/authorities/merge.pl b/authorities/merge.pl
index 3628381..5fe9382 100755
--- a/authorities/merge.pl
+++ b/authorities/merge.pl
@@ -63,15 +63,15 @@ if ($merge) {
     # Deleting the other record
     if ( scalar(@errors) == 0 ) {
 
-        my $error;
         if ($input->param('mergereference') eq 'breeding') {
             require C4::ImportBatch;
             C4::ImportBatch::SetImportRecordStatus( $recordid2, 'imported' );
         } else {
-            C4::AuthoritiesMarc::merge( $recordid2, GetAuthority($recordid2), $recordid1, $record );
-            $error = (DelAuthority($recordid2) == 0);
+            eval {
+                C4::AuthoritiesMarc::merge( $recordid2, GetAuthority($recordid2), $recordid1, $record );
+            };
+            push @errors, 1 if $@;
         }
-        push @errors, $error if ($error);
     }
 
     # Parameters
-- 
1.7.10.4