Bug 16412: Cache undef in L1 only
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Mon, 2 May 2016 10:26:44 +0000 (12:26 +0200)
committerJesse Weaver <jweaver@bywatersolutions.com>
Thu, 12 May 2016 22:09:54 +0000 (16:09 -0600)
No need to cache undef in L2.
Prevent numerous warnings like:
Use of uninitialized value in subroutine entry at /usr/share/koha/masterclone/Koha/Cache.pm line 284

Test plan:
Run t/Cache.t
Run t/db_dependent/sysprefs.t

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Amended patch: remove trailing space char and replace 'you' with 'we' to
match existing wordings.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com>
Koha/Cache.pm

index 6f10b00..6b41e3c 100644 (file)
@@ -271,10 +271,11 @@ sub set_in_cache {
     # Deep copy if it's not a scalar and unsafe is not passed
     $value = dclone( $value ) if ref($value) and not $unsafe;
 
-    # Set in L1 cache
+    # Set in L1 cache; exit if we are caching an undef
     $L1_cache{ $key } = $value;
+    return if !defined $value;
 
-    # We consider an expiry of 0 to be inifinite
+    # We consider an expiry of 0 to be infinite
     if ( $expiry ) {
         return $set_sub
           ? $set_sub->( $key, $value, $expiry )