From 6bf50445b151ef94e6100da482e5826458a5136b Mon Sep 17 00:00:00 2001 From: Andrew Isherwood Date: Thu, 30 Aug 2018 10:52:43 +0100 Subject: [PATCH] Bug 21289: Fix "isa" bug during partner request We cannot call 'handle_commit_maybe' inside a 'try' block. handle_commit_maybe redirects the client then calls 'exit', this is interpreted as an error and the 'catch' block is erroneously called. This patch moves the calling of 'handle_commit_maybe' outside the try block, it will only be reached if everything inside the try block suceeds. To test: 1) Enable ILL and have the FreeForm backend available 2) Create a patron category to hold ILL "partners" to whom requests can be sent. The category can be called anything, you should note the code you assign 3) Create a patron that belongs to your new category, the patron must have a primary email defined. 4) In your block in koha-conf.xml, ensure you have a element, it should contain the code you assigned in step 2 5) Create an ILL request using the FreeForm backend 6) Once the request is created, select the "Place request with partners" button 7) Select your "partner" from the "Select partner libraries" box 8) Click "Send email" 9) TEST: Observe no errors are displayed in the UI Signed-off-by: Barry Cannon Signed-off-by: Jonathan Druart Signed-off-by: Nick Clemens (cherry picked from commit fca5a1cb3dba5d6561eaf5f30dfd4d996a4042cc) Signed-off-by: Martin Renvoize --- ill/ill-requests.pl | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/ill/ill-requests.pl b/ill/ill-requests.pl index 47cfc97050..48190b6a26 100755 --- a/ill/ill-requests.pl +++ b/ill/ill-requests.pl @@ -184,19 +184,18 @@ if ( $backends_available ) { handle_commit_maybe($backend_result, $request); } elsif ( $op eq 'generic_confirm' ) { + my $backend_result; + my $request; try { - my $request = Koha::Illrequests->find($params->{illrequest_id}); + $request = Koha::Illrequests->find($params->{illrequest_id}); $params->{current_branchcode} = C4::Context->mybranch; - my $backend_result = $request->generic_confirm($params); + $backend_result = $request->generic_confirm($params); $template->param( whole => $backend_result, request => $request, ); $template->param( error => $params->{error} ) if $params->{error}; - - # handle special commit rules & update type - handle_commit_maybe($backend_result, $request); } catch { my $error; @@ -216,6 +215,9 @@ if ( $backends_available ) { "&error=$error" ); exit; }; + + # handle special commit rules & update type + handle_commit_maybe($backend_result, $request); } elsif ( $op eq 'illlist') { # If we receive a pre-filter, make it available to the template -- 2.39.5