#2409 - timezone issues in class.calendar_ical.inc.p

Ticket geändert von Ralf Becker am 2009/12/18 02:13
Verfolgungssystem: Bugs
Kategorie: Calendar
Version: Trunk
Status: Offen
Lösung: Keine
Prozent erledigt: 0%
Priorität: 5 - mittlere
Erstellt von: Tony den haan
Zugewiesen an: Ralf Becker
Zusammenfassung: #2409 - timezone issues in class.calendar_ical.inc.p
Funambol debug log showed me:

Call to a member function getAttribute() on a non-object in /usr/local/www/data-dist/egroupware.svn/calendar/inc/class.calendar_ical.inc.php on line 271

while apache errorlog showed me:
calendar_ical::exportVCal() unknown TZID=‘US/Eastern’, defaulting to user timezone ‘US/Eastern’

class.calendar_ical.inc.php code suggests these are related, probably a case of assuming a function actually returned a class/value;
Kommentar von Verfolgungssystem am 2009/12/15 13:01:
This Tracker item was closed automatically by the system. It was previously set to a Pending status, and the original submitter did not respond within 14 days.
Kommentar von Ralf Becker am 2009/12/01 12:10:
Hi,
PHP’s DateTimeZone class understands the old US/* timezones:
[553] => US/Samoa
[554] => US/Pacific-New
[555] => US/Pacific
[556] => US/Mountain
[557] => US/Michigan
[558] => US/Indiana-Starke
[559] => US/Hawaii
[560] => US/Eastern
[561] => US/East-Indiana
[562] => US/Central
[563] => US/Arizona
[564] => US/Aleutian
[565] => US/Alaska
I dont show them in EGw, because they are deprecated, but that’s not the problem. Problem is that we have not conversation from the deprecated name to the new name, eg:
‘US/Eastern’ => 'America/New_York’
I will write an update script adding these conversations as aliases to our timezone database. Can you provide that list? (Valid timezones are the ones shown in EGroupware under preferences >> common preferences)

Just as a test you can add the following to your database:
SELECT tz_id FROM egw_cal_timezones WHERE tz_tzid=‘America/New_York’;
Given the above reports eg. 146, you run:
INSERT INTO egw_cal_timezones (tz_tzid,tz_alias) VALUES (‘US/Eastern’,146);

But please report all of the US/* conversations, so we can fix the problem in general and not only yours!

Ralf
Kommentar von Jörg Lehrke am 2009/12/01 11:38:
Hi Tony,

this is in fact not a problem of the SyncML-Code but an bug in the database migration routine of the eGW update process. Your web server seems to use the timezone "US/Eastern". During the update to the trunk version with timezone support all events were set to this timezone. The problem is now that eGW does not know this timezone and therefore we get in trouble. The SyncML code relies on the timezone information in the eGW database to build proper VTIMEZONE entries.
You have to adjust the timezone entries in your database to make it works again.
I will forward this ticket to Ralf.

  Cheers,
   J"org 

Kommentar von Tony den haan am 2009/12/01 11:16:
I can’t find any such options in Thunderbird/Funambol. In Lightning config timezone is set to Europe/Amsterdam, no idea where this US/Eastern comes from, Funambol issue?

But still, it seems wrong to me to not check if a function actually returns a value.

What about defaulting to UTC?
Kommentar von Jörg Lehrke am 1970/01/01 01:00:
Hi Tony,

the eGW timezone database does not contain "US/Eastern". You should select a suitable timezone for your client from the list and set this as synchronization timezone for the device.
This should help. Another way would be to add the timezone to the database, of course.

  Cheers,
    J"org

Linked entries:
http://www.egroupware.org/egroupware/index.php?menuaction=tracker.tracker_ui.edit&tr_id=2409&no_popup=1