radiant / radiant-event-calendar-extension

Create, organise and display calendar events in your radiant site. Read, aggregate and serve ical subscriptions.
37 stars 13 forks source link

Google Calendar with recurring events crashes on refresh #3

Closed jacksenechal closed 14 years ago

jacksenechal commented 14 years ago

My Google Calendar crashes with the following error if I use the private calendar link, or if I make all events public. I can work around this by setting the calendar to public but showing only free/busy data, and then manually setting events to public when I create them.

My conjecture is that the error comes from the fact that I have certain events set to repeat forever. The obvious solution would be to offer a cut-off date in the calendar admin panel, defaulting to several years in advance. Not sure how easy / hard it would be to implement.

Processing Admin::IcalsController#refresh (for 122.164.241.81 at 2010-01-07 03:33:34) [PUT]
  Parameters: {"action"=>"refresh", "_method"=>"put", "authenticity_token"=>"JKPxSDJLQ7XUMKC1pu5WtCW6V5DA6dimg3+/tfwXa1w=", "id"=>"1", "controller"=>"admin/icals"}
RiCal parse error with: Meh: This component is unbounded, cannot produce an array of occurrences!.

ArgumentError (This component is unbounded, cannot produce an array of occurrences!):
  /home/jsenechal/.gems/gems/ri_cal-0.8.5/lib/ri_cal/occurrence_enumerator.rb:172:in `to_a'
  /home/jsenechal/.gems/gems/ri_cal-0.8.5/lib/ri_cal/occurrence_enumerator.rb:193:in `occurrences'
  vendor/extensions/event_calendar/app/models/ical.rb:53:in `parse_file'
  vendor/extensions/event_calendar/app/models/ical.rb:52:in `each'
  vendor/extensions/event_calendar/app/models/ical.rb:52:in `parse_file'
  vendor/extensions/event_calendar/app/models/ical.rb:48:in `open'
  vendor/extensions/event_calendar/app/models/ical.rb:48:in `parse_file'
  vendor/extensions/event_calendar/app/models/ical.rb:44:in `parse_file'
  vendor/extensions/event_calendar/app/models/ical.rb:16:in `refresh'
  vendor/extensions/event_calendar/app/controllers/admin/icals_controller.rb:18:in `refresh'
  radiant (0.8.1) vendor/plugins/haml/rails/./lib/sass/plugin/rails.rb:19:in `process'
  /dh/passenger/lib/phusion_passenger/rack/request_handler.rb:91:in `process_request'
  /dh/passenger/lib/phusion_passenger/abstract_request_handler.rb:206:in `main_loop'
  /dh/passenger/lib/phusion_passenger/railz/application_spawner.rb:376:in `start_request_handler'
  /dh/passenger/lib/phusion_passenger/railz/application_spawner.rb:334:in `handle_spawn_application'
  /dh/passenger/lib/phusion_passenger/utils.rb:182:in `safe_fork'
  /dh/passenger/lib/phusion_passenger/railz/application_spawner.rb:332:in `handle_spawn_application'
  /dh/passenger/lib/phusion_passenger/abstract_server.rb:351:in `__send__'
  /dh/passenger/lib/phusion_passenger/abstract_server.rb:351:in `main_loop'
  /dh/passenger/lib/phusion_passenger/abstract_server.rb:195:in `start_synchronously'
  /dh/passenger/lib/phusion_passenger/abstract_server.rb:162:in `start'
  /dh/passenger/lib/phusion_passenger/railz/application_spawner.rb:213:in `start'
  /dh/passenger/lib/phusion_passenger/spawn_manager.rb:261:in `spawn_rails_application'
  /dh/passenger/lib/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add'
  /dh/passenger/lib/phusion_passenger/spawn_manager.rb:255:in `spawn_rails_application'
  /dh/passenger/lib/phusion_passenger/abstract_server_collection.rb:80:in `synchronize'
  /dh/passenger/lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
  /dh/passenger/lib/phusion_passenger/spawn_manager.rb:254:in `spawn_rails_application'
  /dh/passenger/lib/phusion_passenger/spawn_manager.rb:153:in `spawn_application'
  /dh/passenger/lib/phusion_passenger/spawn_manager.rb:286:in `handle_spawn_application'
  /dh/passenger/lib/phusion_passenger/abstract_server.rb:351:in `__send__'
  /dh/passenger/lib/phusion_passenger/abstract_server.rb:351:in `main_loop'
  /dh/passenger/lib/phusion_passenger/abstract_server.rb:195:in `start_synchronously'

Rendering /home/.lunchbox/jsenechal/rails/radiant_test/public/500.html (500 Internal Server Error)
spanner commented 14 years ago

Your conjecture is good and I'm sorry I didn't see this before. I'll add an event horizon.

spanner commented 14 years ago

Thank you. I've fixed that (you might need to set Radiant::Config['event_calendar.recurrence_limit'] if 10 years is the wrong limit) in the 0.9 branch that is going to merge in shortly.

spanner commented 14 years ago

you should find this is fixed now. thanks for the report.