diff options
author | isherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-17 02:23:18 +0000 |
---|---|---|
committer | isherman@chromium.org <isherman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-17 02:23:18 +0000 |
commit | 2e79ac55e21eb17d9afd33e40d9c0fe70272d10a (patch) | |
tree | 0cdb485746bf906dea75cb55422ab579f19e9567 /chrome/browser/sync/glue/generic_change_processor.cc | |
parent | 48c48280d9bba44ff14c3c665e9ef63c32c0e173 (diff) | |
download | chromium_src-2e79ac55e21eb17d9afd33e40d9c0fe70272d10a.zip chromium_src-2e79ac55e21eb17d9afd33e40d9c0fe70272d10a.tar.gz chromium_src-2e79ac55e21eb17d9afd33e40d9c0fe70272d10a.tar.bz2 |
Add additional error logging to investigate Autocomplete Sync failures.
BUG=122687
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10310113
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@137617 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync/glue/generic_change_processor.cc')
-rw-r--r-- | chrome/browser/sync/glue/generic_change_processor.cc | 41 |
1 files changed, 34 insertions, 7 deletions
diff --git a/chrome/browser/sync/glue/generic_change_processor.cc b/chrome/browser/sync/glue/generic_change_processor.cc index 0c9ac04..3cde180 100644 --- a/chrome/browser/sync/glue/generic_change_processor.cc +++ b/chrome/browser/sync/glue/generic_change_processor.cc @@ -253,16 +253,43 @@ SyncError GenericChangeProcessor::ProcessSyncChanges( error.message()); return error; } - if (!sync_node.InitUniqueByCreation(change.sync_data().GetDataType(), + sync_api::WriteNode::InitUniqueByCreationResult result = + sync_node.InitUniqueByCreation(change.sync_data().GetDataType(), root_node, - change.sync_data().GetTag())) { + change.sync_data().GetTag()); + if (result != sync_api::WriteNode::INIT_SUCCESS) { NOTREACHED(); - SyncError error(FROM_HERE, - "Failed to create " + type_str + " node.", + std::string error_prefix = "Failed to create " + type_str + " node: "; + SyncError error; + switch (result) { + case sync_api::WriteNode::INIT_FAILED_EMPTY_TAG: + error.Reset(FROM_HERE, error_prefix + "empty tag", type); + error_handler()->OnSingleDatatypeUnrecoverableError( + error.location(), error.message()); + return error; + case sync_api::WriteNode::INIT_FAILED_ENTRY_ALREADY_EXISTS: + error.Reset(FROM_HERE, error_prefix + "entry already exists", type); + error_handler()->OnSingleDatatypeUnrecoverableError( + error.location(), error.message()); + return error; + case sync_api::WriteNode::INIT_FAILED_COULD_NOT_CREATE_ENTRY: + error.Reset(FROM_HERE, error_prefix + "failed to create entry", type); - error_handler()->OnSingleDatatypeUnrecoverableError(error.location(), - error.message()); - return error; + error_handler()->OnSingleDatatypeUnrecoverableError( + error.location(), error.message()); + return error; + case sync_api::WriteNode::INIT_FAILED_SET_PREDECESSOR: + error.Reset(FROM_HERE, error_prefix + "failed to set predecessor", + type); + error_handler()->OnSingleDatatypeUnrecoverableError( + error.location(), error.message()); + return error; + default: + error.Reset(FROM_HERE, error_prefix + "unknown error", type); + error_handler()->OnSingleDatatypeUnrecoverableError( + error.location(), error.message()); + return error; + } } sync_node.SetTitle(UTF8ToWide(change.sync_data().GetTitle())); sync_node.SetEntitySpecifics(change.sync_data().GetSpecifics()); |