From b5035de9d6853fffe5ff84fa7091433072ec26ab Mon Sep 17 00:00:00 2001 From: Bernardo Gonzalez Kriegel Date: Fri, 20 May 2016 14:26:14 -0300 Subject: [PATCH] Bug 13669: Re-adds error handling to load_sql This patch prevents crashing in case an error is detected when loading a file To test: 1) Apply patch 2) Mangle kohastructure.sql or any sample file adding and invalid SQL line 3) Run webinstaller and check that the error is handled gracefully Signed-off-by: Jonathan Druart Signed-off-by: Kyle M Hall (cherry picked from commit 080f5a6b8ed1c958983bd8f528bda4b32cc76ebf) Signed-off-by: Julian Maurice --- C4/Installer.pm | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/C4/Installer.pm b/C4/Installer.pm index 6bfb57abc2..c625e0b2db 100644 --- a/C4/Installer.pm +++ b/C4/Installer.pm @@ -429,18 +429,24 @@ with missing files, e.g. =cut sub load_sql { - my $self = shift; my $filename = shift; + my $error; my $dbh = $self->{ dbh }; - my $error = DBIx::RunSQL->run_sql_file( - dbh => $dbh, - sql => $filename, - ); - - $error = ( $error ) ? "ERROR: $filename" : ""; + eval { + DBIx::RunSQL->run_sql_file( + dbh => $dbh, + sql => $filename, + ); + }; + # errors thrown while loading installer data should be logged + if( $@ ) { + warn "C4::Installer::load_sql returned the following errors while attempting to load $filename:\n"; + warn "$@"; + $error = "Error attempting to load $filename:\n$@"; + } return $error; } -- 2.39.5