From b5759848936bc53632182e3a40141aa8b9f44fa1 Mon Sep 17 00:00:00 2001
From: Petro Vashchuk <stalkernoid@gmail.com>
Date: Mon, 18 May 2020 14:45:56 +0300
Subject: [PATCH] Bug 25516: Fix for "Can't call method unblessed on unblessed
reference"
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Software error:
Can't call method "unblessed" on unblessed reference at ../reserve/request.pl line 581.
was caused by recent commit with `wantarray` removal in sub pickup_locations in ‘Item.pm’
and visible on fresher Perls (where experimental feature "autoderef" removed https://www.effectiveperlprogramming.com/2010/11/use-array-references-with-the-array-operators/ )
To test:
1) Get a clean dev environment after "reset_all"
2) Add an empty record for “Default checkout, hold and return policy” on /cgi-bin/koha/admin/smart-rules.pl.
3) Open item record, like /cgi-bin/koha/reserve/request.pl?biblionumber=1&borrowernumber=1
4) Observe the error (Can't call method "unblessed" on unblessed reference at ../reserve/request.pl line 581.)
5) Apply patch.
6) Repeat steps 2 and 3.
7) Observe that the error is gone.
---
reserve/request.pl | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/reserve/request.pl b/reserve/request.pl
index 61f853d085..7df14b8172 100755
--- a/reserve/request.pl
+++ b/reserve/request.pl
@@ -577,14 +577,13 @@ foreach my $biblionumber (@biblionumbers) {
$item->{pickup_locations} = 'Any library';
$item->{pickup_locations_code} = 'all';
} else {
+ my $arr_locations = Koha::Items->find($itemnumber)
+ ->pickup_locations( { patron => $patron } );
+
$item->{pickup_locations} = join( ', ',
- map { $_->unblessed->{branchname} }
- Koha::Items->find($itemnumber)
- ->pickup_locations( { patron => $patron } ) );
+ map { $_->unblessed->{branchname} } @$arr_locations);
$item->{pickup_locations_code} = join( ',',
- map { $_->unblessed->{branchcode} }
- Koha::Items->find($itemnumber)
- ->pickup_locations( { patron => $patron } ) );
+ map { $_->unblessed->{branchcode} } @$arr_locations);
}
push( @available_itemtypes, $item->{itype} );
--
2.17.1