? 955236-1_error_handling.patch ? feeds-patch.diff ? libraries/simplepie.inc ? tests/feeds/.DS_Store Index: includes/FeedsSource.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/feeds/includes/FeedsSource.inc,v retrieving revision 1.26.2.8 diff -u -p -r1.26.2.8 FeedsSource.inc --- includes/FeedsSource.inc 26 Oct 2010 03:05:58 -0000 1.26.2.8 +++ includes/FeedsSource.inc 28 Oct 2010 21:50:35 -0000 @@ -328,6 +328,8 @@ class FeedsSource extends FeedsConfigura */ public function import() { $this->acquireLock(); + set_error_handler(array($this, 'importError')); + try { // Fetch. if (empty($this->fetcher_result) || FEEDS_BATCH_COMPLETE == $this->progressParsing()) { @@ -354,6 +356,8 @@ class FeedsSource extends FeedsConfigura unset($this->fetcher_result, $this->state); } $this->save(); + restore_error_handler(); + if (isset($e)) { throw $e; } @@ -376,6 +380,8 @@ class FeedsSource extends FeedsConfigura */ public function clear() { $this->acquireLock(); + set_error_handler(array($this, 'clearError')); + try { $this->importer->fetcher->clear($this); $this->importer->parser->clear($this); @@ -391,6 +397,8 @@ class FeedsSource extends FeedsConfigura unset($this->state); } $this->save(); + restore_error_handler(); + if (isset($e)) { throw $e; } @@ -398,6 +406,28 @@ class FeedsSource extends FeedsConfigura } /** + * Handles errors on import. + */ + public function importError() { + $this->log('import', $message, array(), WATCHDOG_ERROR); + module_invoke_all('feeds_after_import', $this); + unset($this->state); + $this->save(); + _drupal_error_handler($error_level, $message, $filename, $line, $context); + } + + /** + * Handles errors on clear. + */ + public function clearError() { + $this->log('clear', $message, array(), WATCHDOG_ERROR); + module_invoke_all('feeds_after_clear', $this); + unset($this->state); + $this->save(); + _drupal_error_handler($error_level, $message, $filename, $line, $context); + } + + /** * Report progress as float between 0 and 1. 1 = FEEDS_BATCH_COMPLETE. */ public function progressParsing() {