diff --git a/lib/feed_handler.rb b/lib/feed_handler.rb index 9c1164e..3617a8f 100644 --- a/lib/feed_handler.rb +++ b/lib/feed_handler.rb @@ -65,7 +65,12 @@ class FeedHandler if container.update_errors > FeedHandler.max_errors container.enabled = false end - container.finish_fetch + begin + container.finish_fetch + rescue Exception => finish_fetch_exception + RAILS_DEFAULT_LOGGER.warn("Unable to finish fetch from %s ID %d\n%s" % [container.class.name, container.id, finish_fetch_exception.to_s]) + RAILS_DEFAULT_LOGGER.warn("Backtrace:\n%s" % finish_fetch_exception.backtrace.join("\n")) + end end end diff --git a/test/unit/feed_handler_test.rb b/test/unit/feed_handler_test.rb index 964f7e6..35d16dd 100644 --- a/test/unit/feed_handler_test.rb +++ b/test/unit/feed_handler_test.rb @@ -114,4 +114,11 @@ class FeedHandlerTest < Test::Unit::TestCase end end + should 'not crash even when finish fetch fails' do + container.stubs(:finish_fetch).raises(Exception.new("crash")) + assert_nothing_raised do + handler.process(container) + end + end + end -- libgit2 0.21.2