Bug 8532 - improve robustness when converting dates
authorRobin Sheat <robin@catalyst.net.nz>
Tue, 31 Jul 2012 11:22:48 +0000 (13:22 +0200)
committerPaul Poulain <paul.poulain@biblibre.com>
Fri, 31 Aug 2012 15:30:28 +0000 (17:30 +0200)
If undef is passed to the date format conversion function, it dies. This
can happen when you have old data in the database. Better to handle it
in some fashion rather than die, so now it just returns undef too.

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
I replace "return undef" with just "return" to pass perlcritic

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Koha/DateUtils.pm

index a1fd088..d7892dd 100644 (file)
@@ -94,7 +94,8 @@ s/(\d{4})(\d{2})(\d{2})\s+(\d{2})(\d{2})(\d{2})/$1-$2-$3T$4:$5:$6/;
 
 $date_string = output_pref($dt, [$format] );
 
-Returns a string containing the time & date formatted as per the C4::Context setting
+Returns a string containing the time & date formatted as per the C4::Context setting,
+or C<undef> if C<undef> was provided.
 
 A second parameter allows overriding of the syspref value. This is for testing only
 In usage use the DateTime objects own methods for non standard formatting
@@ -104,6 +105,9 @@ In usage use the DateTime objects own methods for non standard formatting
 sub output_pref {
     my $dt         = shift;
     my $force_pref = shift;    # if testing we want to override Context
+
+    return unless defined $dt;
+
     my $pref =
       defined $force_pref ? $force_pref : C4::Context->preference('dateformat');
     given ($pref) {