From e07a30c4e249d4516b72ff0d75be82c4985be5ef Mon Sep 17 00:00:00 2001
From: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Date: Tue, 12 Nov 2019 18:18:23 +0100
Subject: [PATCH] Bug 23846: Handle exception gracefully at the OPAC

I do not think we should have the same trick as the intranet, and
display a message. This should be enough.
---
 koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt | 2 +-
 misc/maintenance/search_for_data_inconsistencies.pl         | 1 +
 opac/opac-detail.pl                                         | 4 +++-
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt
index 5da7b95c18..571f3b2395 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt
@@ -71,7 +71,7 @@
     [% IF decoding_error %]
         <div>
             There is an error with this bibliographic record, the view may be degraded.
-            <br/> Error: [% decoding_error %]
+            <br/> Error: [% decoding_error | html %]
         </div>
     [% END %]
     [% IF ( ocoins ) %]
diff --git a/misc/maintenance/search_for_data_inconsistencies.pl b/misc/maintenance/search_for_data_inconsistencies.pl
index 3fc6eceb20..02f66f21d3 100755
--- a/misc/maintenance/search_for_data_inconsistencies.pl
+++ b/misc/maintenance/search_for_data_inconsistencies.pl
@@ -154,4 +154,5 @@ Catch data inconsistencies in Koha database
     then items.itype must be set else biblioitems.itemtype must be set
   * Item types defined in items or biblioitems must be defined in the itemtypes table
 * Invalid MARCXML in bibliographic records
+
 =cut
diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl
index 5e29b3f627..07655b2a4e 100755
--- a/opac/opac-detail.pl
+++ b/opac/opac-detail.pl
@@ -845,8 +845,10 @@ $template->param(
 	content_identifier_exists =>  $content_identifier_exists,
 );
 
+# Catch the exception as Koha::Biblio::Metadata->record can explode if the MARCXML is invalid
 # COinS format FIXME: for books Only
-$template->param( ocoins => $biblio->get_coins );
+my $coins = eval { $biblio->get_coins };
+$template->param( ocoins => $coins );
 
 my ( $loggedincommenter, $reviews );
 if ( C4::Context->preference('reviewson') ) {
-- 
2.11.0