Index: chrome/browser/sync/glue/bookmark_change_processor.cc |
diff --git a/chrome/browser/sync/glue/bookmark_change_processor.cc b/chrome/browser/sync/glue/bookmark_change_processor.cc |
index f7434476ff987d758b375c51aa629c89f6fb36d4..bc0cd154e1ae167977d2d2c44790a569f977d87b 100644 |
--- a/chrome/browser/sync/glue/bookmark_change_processor.cc |
+++ b/chrome/browser/sync/glue/bookmark_change_processor.cc |
@@ -21,6 +21,7 @@ |
#include "chrome/browser/sync/internal_api/write_transaction.h" |
#include "chrome/browser/sync/profile_sync_service.h" |
#include "content/public/browser/browser_thread.h" |
+#include "sync/syncable/syncable.h" // TODO(tim): Investigating bug 121587. |
#include "third_party/skia/include/core/SkBitmap.h" |
#include "ui/gfx/codec/png_codec.h" |
@@ -214,8 +215,22 @@ void BookmarkChangeProcessor::BookmarkNodeChanged(BookmarkModel* model, |
// Lookup the sync node that's associated with |node|. |
sync_api::WriteNode sync_node(&trans); |
if (!model_associator_->InitSyncNodeFromChromeId(node->id(), &sync_node)) { |
- error_handler()->OnSingleDatatypeUnrecoverableError(FROM_HERE, |
- std::string()); |
+ // TODO(tim): Investigating bug 121587. |
+ if (model_associator_->GetSyncIdFromChromeId(node->id()) == |
+ sync_api::kInvalidId) { |
+ error_handler()->OnSingleDatatypeUnrecoverableError(FROM_HERE, |
+ "Bookmark id not found in model associator on BookmarkNodeChanged"); |
+ } else if (!sync_node.GetEntry()->good()) { |
+ error_handler()->OnSingleDatatypeUnrecoverableError(FROM_HERE, |
+ "Could not InitByIdLookup on BookmarkNodeChanged, good() failed"); |
+ } else if (sync_node.GetEntry()->Get(::syncable::IS_DEL)) { |
+ error_handler()->OnSingleDatatypeUnrecoverableError(FROM_HERE, |
+ "Could not InitByIdLookup on BookmarkNodeChanged, is_del true"); |
+ } else { |
+ error_handler()->OnSingleDatatypeUnrecoverableError(FROM_HERE, |
+ "Could not InitByIdLookup on BookmarkNodeChanged, " |
+ " DecryptIfNecessary failed"); |
+ } |
return; |
} |