Bug 14846 - Items with no holdingbranch causes svc/holds to crash
authorBlou <philippe.blouin@inlibro.com>
Thu, 17 Sep 2015 15:33:38 +0000 (11:33 -0400)
committerKyle M Hall <kyle@bywatersolutions.com>
Fri, 11 Dec 2015 16:20:39 +0000 (16:20 +0000)
When trying to display the holds for a user, if an item has no
holdingbranch, it causes the svc/holds service to crash and the display
to freeze.

Tentative steps to reproduce on any DB:
1) put 1 or more items on hold for a given user.
2) go into the database and set the item.holdingbranch to NULL
3) In the user's page, in checkouts (circulation.pl), click the tab that
   should be written 1 Hold(s)
4) It will be "Processing" indefinitely.

The cause is the svc/holds code that crashes.  The fix will validate
that there's an holdingbranch before proceding with the code.

Signed-off-by: Frédéric Demians <f.demians@tamil.fr>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

svc/holds

index 10d9205..9c90f8c 100755 (executable)
--- a/svc/holds
+++ b/svc/holds
@@ -129,7 +129,7 @@ while ( my $h = $holds_rs->next() ) {
             $hold->{date_sent} = output_pref( dt_from_string($transferred_when) );
             $hold->{from_branch} = GetBranchName($transferred_from);
         }
-        elsif ( $item->holding_branch()->branchcode() ne
+        elsif ( $item->holding_branch() && $item->holding_branch()->branchcode() ne
             $h->branch()->branchcode() )
         {
             $hold->{not_transferred}    = 1;