Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(978)

Unified Diff: chrome/browser/sync/glue/generic_change_processor.cc

Issue 10310113: Add additional error logging to investigate Autocomplete Sync failures. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Revert a couple of stray changes Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sync/glue/generic_change_processor.cc
diff --git a/chrome/browser/sync/glue/generic_change_processor.cc b/chrome/browser/sync/glue/generic_change_processor.cc
index a8accd94598001ab029a78b492bae596508033a8..f09f08a89f6944b85805a127a64c3a2837a0c0af 100644
--- a/chrome/browser/sync/glue/generic_change_processor.cc
+++ b/chrome/browser/sync/glue/generic_change_processor.cc
@@ -191,16 +191,47 @@ 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;
+
tim (not reviewing) 2012/05/17 00:22:10 There are extra newlines before each case.
Ilya Sherman 2012/05/17 00:40:04 Done.
+ 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());
« no previous file with comments | « no previous file | chrome/browser/sync/glue/password_change_processor.cc » ('j') | sync/internal_api/write_node.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698