| Index: sync/engine/syncer_util.cc
|
| diff --git a/sync/engine/syncer_util.cc b/sync/engine/syncer_util.cc
|
| index 2235734aedbacbfb0a36c00090646ae62133fdb8..c7d93c19d040d1a4f98bf890e49fe8c46244e17e 100644
|
| --- a/sync/engine/syncer_util.cc
|
| +++ b/sync/engine/syncer_util.cc
|
| @@ -12,6 +12,7 @@
|
| #include "base/base64.h"
|
| #include "base/location.h"
|
| #include "base/metrics/histogram.h"
|
| +#include "base/rand_util.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "sync/engine/conflict_resolver.h"
|
| #include "sync/engine/syncer_proto_util.h"
|
| @@ -278,7 +279,9 @@ UpdateAttemptResponse AttemptToUpdateEntry(
|
| std::string GetUniqueBookmarkTagFromUpdate(const sync_pb::SyncEntity& update) {
|
| if (!update.has_originator_cache_guid() ||
|
| !update.has_originator_client_item_id()) {
|
| - return std::string();
|
| + LOG(ERROR) << "Update is missing requirements for bookmark position."
|
| + << " This is a server bug.";
|
| + return UniquePosition::RandomSuffix();
|
| }
|
|
|
| return syncable::GenerateSyncableBookmarkHash(
|
| @@ -295,7 +298,8 @@ UniquePosition GetUpdatePosition(const sync_pb::SyncEntity& update,
|
| } else if (update.has_position_in_parent()) {
|
| return UniquePosition::FromInt64(update.position_in_parent(), suffix);
|
| } else {
|
| - return UniquePosition::CreateInvalid();
|
| + LOG(ERROR) << "No position information in update. This is a server bug.";
|
| + return UniquePosition::FromInt64(0, suffix);
|
| }
|
| }
|
|
|
| @@ -341,10 +345,6 @@ void UpdateBookmarkPositioning(
|
| GetUpdatePosition(update, local_entry->GetUniqueBookmarkTag());
|
| if (update_pos.IsValid()) {
|
| local_entry->PutServerUniquePosition(update_pos);
|
| - } else {
|
| - // TODO(sync): This and other cases of unexpected input should be handled
|
| - // better.
|
| - NOTREACHED();
|
| }
|
| }
|
|
|
|
|