[Jifty-commit] r2174 - in Jifty-DBI/trunk: lib/Jifty/DBI/Filter

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Fri Nov 17 11:44:54 EST 2006


Author: falcone
Date: Fri Nov 17 11:44:53 2006
New Revision: 2174

Modified:
   Jifty-DBI/trunk/   (props changed)
   Jifty-DBI/trunk/lib/Jifty/DBI/Filter/DateTime.pm

Log:
 r14587 at ketch:  falcone | 2006-11-17 11:44:16 -0500
 * decode() shouldn't be getting dates it can't understand
   (they should have been encode()'ed before seeing the database)
   Make it scream loudly and with a lot more information when we
   run into a case like this.


Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Filter/DateTime.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Filter/DateTime.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Filter/DateTime.pm	Fri Nov 17 11:44:53 2006
@@ -7,6 +7,7 @@
 use DateTime                  ();
 use DateTime::Format::ISO8601 ();
 use DateTime::Format::Strptime ();
+use Carp ();
 
 use constant _time_zone => '';
 use constant _strptime  => '%Y-%m-%d %H:%M:%S';
@@ -67,7 +68,13 @@
 # but we need Jifty::DBI::Handle here to get DB type
 
     my $str = join('T', split ' ', $$value_ref, 2);
-    my $dt = DateTime::Format::ISO8601->parse_datetime($str);
+    my $dt;
+    eval { $dt  = DateTime::Format::ISO8601->parse_datetime($str) };
+
+    if ($@) { # if datetime can't decode this, scream loudly with a useful error message
+        Carp::cluck($@);
+        return;
+    }
 
     if ($dt) {
 	my $tz = $self->_time_zone;


More information about the Jifty-commit mailing list