Protect against undefined value as ARRAY reference
authorDan Scott <dan@coffeecode.net>
Wed, 7 Sep 2011 06:41:43 +0000 (02:41 -0400)
committerGalen Charlton <gmc@esilibrary.com>
Tue, 11 Oct 2011 14:20:59 +0000 (10:20 -0400)
We should not assume that the caller is going to supply an array
(empty or not) of addresses or cards in the input values for the
open-ils.actor.patron.update method.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm

index ebb56a1..ad6fabc 100644 (file)
@@ -669,7 +669,9 @@ sub _add_update_addresses {
 
        my $current_id; # id of the address before creation
 
-       for my $address (@{$patron->addresses()}) {
+       my $addresses = $patron->addresses();
+
+       for my $address (@$addresses) {
 
                next unless ref $address;
                $current_id = $address->id();
@@ -779,7 +781,9 @@ sub _add_update_cards {
        my $evt;
 
        my $virtual_id; #id of the card before creation
-       for my $card (@{$patron->cards()}) {
+
+       my $cards = $patron->cards();
+       for my $card (@$cards) {
 
                $card->usr($new_patron->id());