[Kolab-devel] [issue2521] an event breaking lib/Horde/Kolab/Freebusy.php

Mike Gabriel kolab-issues at intevation.de
Mon Mar 3 20:18:00 CET 2008


New submission from Mike Gabriel <m.gabriel at das-netzwerkteam.de>:

i have an event that breaks lib/Horde/Kolab/Freebusy.php with the 
following php error in the middle of freebusy/trigger:

Fatal error: Call to a member function timestamp() on a non-object in 
/usr/local/share/_horde-versions_/horde3-webmail-1.1-rc1-netzwerkteam/lib/Horde/Kolab/Freebusy.php
on line 
172

here is the event that stops fb-cache file generation (i have crossed 
out the location field):

object(Kolab_Event)#57 (8) { ["eventID"]=>  string(32) 
"db0edbbb1d9acf0309ce34506e36e999" ["start"]=>  object(Horde_Date)#58 
(7) { ["year"]=>  int(2008) ["month"]=>  int(1) ["mday"]=>  int(22) 
["hour"]=>  int(7) ["min"]=>  int(0) ["sec"]=>  int(0) 
["_supportedSpecs"]=>  string(21) "%CdDeHImMnRStTyYbBpxX" } ["end"]=>   
object(Horde_Date)#59 (7) { ["year"]=>  int(2008) ["month"]=>  int(1) 
["mday"]=>  int(22) ["hour"]=>  int(8) ["min"]=>  int(0) ["sec"]=>   
int(0) ["_supportedSpecs"]=>  string(21) "%CdDeHImMnRStTyYbBpxX" } 
["title"]=>  string(7) "Summary" ["location"]=>  string(8) 
"Location" ["private"]=>  bool(false) 
["status"]=>  int(2) ["recurrence"]=>   
object(Horde_Date_Recurrence)#60 (7) { ["start"]=>   
object(Horde_Date)#61 (7) { ["year"]=>  int(2008) ["month"]=>  int(1) 
["mday"]=>  int(22) ["hour"]=>  int(7) ["min"]=>  int(0) ["sec"]=>   
int(0) ["_supportedSpecs"]=>  string(21) "%CdDeHImMnRStTyYbBpxX" } 
["recurEnd"]=>  NULL ["recurCount"]=>  int(5) ["recurType"]=>  int(2) 
["recurInterval"]=>  int(1) ["recurData"]=>  int(4) ["exceptions"]=>   
array(0) { } } }

when i change some code in Horde_Kolab_Freebusy::listEvents(), the 
fb-generation works, but i feel that my fix is rather a workaround for 
some other culprit:


<schnipp>
     function listEvents($startDate = null, $endDate = null)
     {
             /* do recurrence expansion if not keeping anyway */
             var_dump($event);
             if ($event->recurs()) {
                 $next = $event->recurrence->nextRecurrence($startDate);
                 while ($next !== false &&
                        $event->recurrence->hasException($next->year,
                                                         $next->month,
                                                         $next->mday)) {
                     $next->mday++;
                     $next = $event->recurrence->nextRecurrence($next);
                 }
+               if ( $next ) {
-> raises error:    $duration = $next->timestamp() - 
$event->start->timestamp();
    because $next
    is NULL/false
                     $next_end = &new Horde_Date($event->end->timestamp() +
                                                 $duration);
+               }

                 if ($next !== false &&
                     (!(($endDate->compareDateTime($next) < 0) ||
                        ($startDate->compareDateTime($next_end) > 0)))) {
                     $result[] = $event;
                 }
             }
         }

         return $result;
     }
</schnapp>

the original kolab XML event is attached to this bug ticket.

best,
mike

----------
files: kolab-event.xml
messages: 13860
nosy: mike
priority: minor bug
status: unread
title: an event breaking lib/Horde/Kolab/Freebusy.php
___________________________________________________
Kolab issue tracker <kolab-issues at intevation.de>
<https://www.intevation.de/roundup/kolab/issue2521>
___________________________________________________
-------------- next part --------------
A non-text attachment was scrubbed...
Name: kolab-event.xml
Type: text/xml
Size: 800 bytes
Desc: not available
URL: <http://lists.kolab.org/pipermail/devel/attachments/20080303/13949f75/attachment.xml>


More information about the devel mailing list