Index: chrome/browser/sync/glue/bookmark_model_associator.cc |
diff --git a/chrome/browser/sync/glue/bookmark_model_associator.cc b/chrome/browser/sync/glue/bookmark_model_associator.cc |
index 5d38bacd18013cc619047c2872e4a77ec2ca759a..2d3358447b3bed868ebb4bc3b23f6770cf6abd8f 100644 |
--- a/chrome/browser/sync/glue/bookmark_model_associator.cc |
+++ b/chrome/browser/sync/glue/bookmark_model_associator.cc |
@@ -466,15 +466,17 @@ bool BookmarkModelAssociator::BuildAssociations(SyncError* error) { |
child_node = BookmarkChangeProcessor::CreateBookmarkNode( |
&sync_child_node, parent_node, bookmark_model_, index); |
if (!child_node) { |
- error->Reset(FROM_HERE, |
- "Failed to create bookmark node with title " + |
- sync_child_node.GetTitle() + " and url " + |
- sync_child_node.GetURL().possibly_invalid_spec(), |
- model_type()); |
- return false; |
+ // This can happen if a sync bookmark node doesn't have a valid url. |
+ // As far as we can tell, it appears this can only happen if something |
+ // interrupts association. For now, we just ignore the bookmark. |
+ LOG(ERROR) << "Failed to create bookmark node with title " |
+ << sync_child_node.GetTitle() << " and url " |
+ << sync_child_node.GetURL().possibly_invalid_spec(); |
} |
} |
- Associate(child_node, sync_child_id); |
+ if (child_node) { |
+ Associate(child_node, sync_child_id); |
+ } |
if (sync_child_node.GetIsFolder()) |
dfs_stack.push(sync_child_id); |