[open-ils-commits] [GIT] Evergreen ILS branch master updated. d2fe58a5634583d289d56147c62387592834bd5d

Evergreen Git git at git.evergreen-ils.org
Fri May 31 10:44:17 EDT 2019


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".

The branch, master has been updated
       via  d2fe58a5634583d289d56147c62387592834bd5d (commit)
      from  619eb2ff60e05cfbfce3d378081f406fdc60782a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit d2fe58a5634583d289d56147c62387592834bd5d
Author: Jason Stephenson <jason at sigio.com>
Date:   Tue Aug 7 10:02:10 2018 -0400

    LP 115706: Avoid Internal Server Errors with Hold Count Retrieval
    
    It can happen that the query to get a record's hold count can run too
    long and timeout or fail for some other reason.  When this happens,
    the user sees an Internal Server Error.  The underlying cause is the
    following Perl error:
    
    Can't use an undefined value as an ARRAY reference at
    /usr/local/share/perl/5.22.1/OpenILS/Application/Circ/Holds.pm line
    4264.
    
    This commit rearranges the code around that line to avoid this
    particular undefined value reference error.
    
    Signed-off-by: Jason Stephenson <jason at sigio.com>
    Signed-off-by: Cesar Velez <cesar.velez at equinoxinitiative.org>
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>

diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm
index 40a25b13fe..1336e4efa2 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm
@@ -4315,8 +4315,17 @@ sub rec_hold_count {
         } if ($pld != $top_ou->id);
     }
 
+    # To avoid Internal Server Errors, we get an editor, then run the
+    # query and check the result.  If anything fails, we'll return 0.
+    my $result = 0;
+    if (my $e = new_editor()) {
+        my $query_result = $e->json_query($query);
+        if ($query_result && @{$query_result}) {
+            $result = $query_result->[0]->{count}
+        }
+    }
 
-    return new_editor()->json_query($query)->[0]->{count};
+    return $result;
 }
 
 # A helper function to calculate a hold's expiration time at a given

-----------------------------------------------------------------------

Summary of changes:
 Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list