From 8c54da49301f7f160dd2d1acaa2d92e2c28364dc Mon Sep 17 00:00:00 2001 From: Alex Barth <alex_b@53995.no-reply.drupal.org> Date: Sun, 16 May 2010 20:04:15 +0000 Subject: [PATCH] #755544 Monkey Master: Keep batch processing when mapping fails. --- CHANGELOG.txt | 1 + plugins/FeedsNodeProcessor.inc | 24 +++++++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 1ba254b7..a7307ef7 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -3,6 +3,7 @@ Feeds 6.x 1.0 xxxxxxxxxxxxxxxxxxxx ---------------------------------- +- #755544 Monkey Master: Keep batch processing when mapping fails. - alex_b: Reset import schedule after deleting items from feed. - #653412 rbrandon: Do not create items older than expiry time. - #725392 nicholasThompson: FeedsBatch does not check feeds folder exists before diff --git a/plugins/FeedsNodeProcessor.inc b/plugins/FeedsNodeProcessor.inc index 0ef4778b..c06f8830 100644 --- a/plugins/FeedsNodeProcessor.inc +++ b/plugins/FeedsNodeProcessor.inc @@ -41,10 +41,6 @@ class FeedsNodeProcessor extends FeedsProcessor { // If updating populate nid and vid avoiding an expensive node_load(). $node->nid = $nid; $node->vid = db_result(db_query("SELECT vid FROM {node} WHERE nid = %d", $nid)); - $batch->updated++; - } - else { - $batch->created++; } // Populate and prepare node object. @@ -66,11 +62,21 @@ class FeedsNodeProcessor extends FeedsProcessor { $node->log = 'Created/updated by FeedsNodeProcessor'; $node->uid = 0; - // Execute mappings from $item to $node. - $this->map($item, $node); - - // Save the node. - node_save($node); + // Map and save nodes. If errors occur don't stop but report them. + try { + $this->map($item, $node); + node_save($node); + if (!empty($nid)) { + $batch->updated++; + } + else { + $batch->created++; + } + } + catch (Exception $e) { + drupal_set_message($e->getMessage(), 'warning'); + watchdog('feeds', $e->getMessage(), array(), WATCHDOG_WARNING); + } } $processed++; -- GitLab