Skip to content

Commit 8694811

Browse files
committed
enhanced logging
1 parent 8cd1360 commit 8694811

2 files changed

Lines changed: 13 additions & 4 deletions

File tree

Microsoft.Azure.Cosmos/src/Resource/FullFidelity/Converters/ChangeFeedMetadataConverter.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,22 @@ public override ChangeFeedMetadata Read(ref Utf8JsonReader reader, Type typeToCo
7272
JsonValueKind.Number => pk.Value.TryGetInt64(out long longValue) ? longValue : (object)pk.Value.GetDouble(),
7373
JsonValueKind.True or JsonValueKind.False => pk.Value.GetBoolean(),
7474
JsonValueKind.Null => null,
75-
_ => throw new JsonException($"Unexpected JsonValueKind '{pk.Value.ValueKind}' for PartitionKey property."),
75+
_ => throw new JsonException($"Unexpected JsonValueKind '{pk.Value.ValueKind}' for PartitionKey property '{pk.Name}'."),
7676
};
7777
partitionKey.Add((pk.Name, actualValue));
7878
}
7979
metadata.PartitionKey = partitionKey;
8080
}
8181
}
82+
83+
// validate delete operation requirements
84+
if (metadata.OperationType == ChangeFeedOperationType.Delete)
85+
{
86+
if (metadata.Id == null || metadata.PartitionKey == null)
87+
{
88+
throw new JsonException("Delete operations require both 'id' and 'partitionKey' to be present.");
89+
}
90+
}
8291

8392
return metadata;
8493
}
@@ -132,7 +141,7 @@ public override void Write(Utf8JsonWriter writer, ChangeFeedMetadata value, Json
132141
break;
133142

134143
default:
135-
throw new JsonException($"Unexpected value type '{value.GetType()}' for PartitionKey property.");
144+
throw new JsonException($"Unexpected value type '{objectValue.GetType()}' for PartitionKey property '{key}'.");
136145
}
137146
}
138147
writer.WriteEndObject();

Microsoft.Azure.Cosmos/src/Resource/FullFidelity/Converters/ChangeFeedMetadataNewtonSoftConverter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s
7575
break;
7676

7777
default:
78-
throw new JsonSerializationException($"Unexpected value type: {objectValue.GetType()} for PartitionKey property.");
78+
throw new JsonSerializationException($"Unexpected value type '{objectValue.GetType()}' for PartitionKey property '{key}'.");
7979
}
8080
}
8181
}
@@ -87,7 +87,7 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s
8787
}
8888
else
8989
{
90-
throw new JsonSerializationException($"Unexpected value when converting {nameof(ChangeFeedMetadata)}.");
90+
throw new JsonSerializationException($"Unexpected value '{value}' of type '{value?.GetType()}' when converting {nameof(ChangeFeedMetadata)}.");
9191
}
9292
}
9393

0 commit comments

Comments
 (0)