[CSHARP-4496] JsonReader fails with BsonInternalException when trying to deserialize Decimal128 Created: 27/Jan/23  Updated: 28/Oct/23  Resolved: 14/Feb/23

Status: Closed
Project: C# Driver
Component/s: Serialization
Affects Version/s: None
Fix Version/s: 2.19.1

Type: Bug Priority: Unknown
Reporter: James Kovacs Assignee: James Kovacs
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to CSHARP-4648 Standardize handling of decimal vs De... Closed
Backwards Compatibility: Fully Compatible
Documentation Changes: Not Needed
Documentation Changes Summary:

1. What would you like to communicate to the user about this feature?
2. Would you like the user to see examples of the syntax and/or executable code and its output?
3. Which versions of the driver/connector does this apply to?


 Description   

dynamic doc = BsonSerializer.Deserialize<object>("{ Amount: NumberDecimal('42.42') }");
Console.WriteLine(doc.Amount);

Stack Trace:

Unhandled exception. MongoDB.Bson.BsonInternalException: Invalid BsonType.
   at MongoDB.Bson.IO.JsonReader.SkipValue() in /Users/james/Dropbox/code/mongodb/mongo-csharp-driver/src/MongoDB.Bson/IO/JsonReader.cs:line 869
   at MongoDB.Bson.IO.IBsonReaderExtensions.FindElement(IBsonReader reader, String name) in /Users/james/Dropbox/code/mongodb/mongo-csharp-driver/src/MongoDB.Bson/IO/IBsonReaderExtensions.cs:line 40
   at MongoDB.Bson.Serialization.Conventions.ObjectDiscriminatorConvention.GetActualType(IBsonReader bsonReader, Type nominalType) in /Users/james/Dropbox/code/mongodb/mongo-csharp-driver/src/MongoDB.Bson/Serialization/Conventions/ObjectDiscriminatorConvention.cs:line 119
   at MongoDB.Bson.Serialization.Serializers.ObjectSerializer.DeserializeDiscriminatedValue(BsonDeserializationContext context, BsonDeserializationArgs args) in /Users/james/Dropbox/code/mongodb/mongo-csharp-driver/src/MongoDB.Bson/Serialization/Serializers/ObjectSerializer.cs:line 349
   at MongoDB.Bson.Serialization.Serializers.ObjectSerializer.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args) in /Users/james/Dropbox/code/mongodb/mongo-csharp-driver/src/MongoDB.Bson/Serialization/Serializers/ObjectSerializer.cs:line 193
   at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Deserialize[TValue](IBsonSerializer`1 serializer, BsonDeserializationContext context) in /Users/james/Dropbox/code/mongodb/mongo-csharp-driver/src/MongoDB.Bson/Serialization/IBsonSerializerExtensions.cs:line 49
   at MongoDB.Bson.Serialization.BsonSerializer.Deserialize[TNominalType](IBsonReader bsonReader, Action`1 configurator) in /Users/james/Dropbox/code/mongodb/mongo-csharp-driver/src/MongoDB.Bson/Serialization/BsonSerializer.cs:line 118
   at MongoDB.Bson.Serialization.BsonSerializer.Deserialize[TNominalType](String json, Action`1 configurator) in /Users/james/Dropbox/code/mongodb/mongo-csharp-driver/src/MongoDB.Bson/Serialization/BsonSerializer.cs:line 163
   at Program.<Main>$(String[] args) in /Users/james/Dropbox/code/mongodb/mongo-csharp-driver/tests/MongoDB.Driver.TestConsoleApplication/Program.cs:line 9



 Comments   
Comment by Githook User [ 24/Mar/23 ]

Author:

{'name': 'James Kovacs', 'email': 'jkovacs@post.harvard.edu', 'username': 'JamesKovacs'}

Message: CSHARP-4496: Add decimal support to ObjectSerializer. (#1024)
Branch: v2.19.x
https://github.com/mongodb/mongo-csharp-driver/commit/0eb71aab50dd1ce7070396c28fe8082f155adce5

Comment by Githook User [ 14/Feb/23 ]

Author:

{'name': 'James Kovacs', 'email': 'jkovacs@post.harvard.edu', 'username': 'JamesKovacs'}

Message: CSHARP-4496: Add decimal support to ObjectSerializer. (#1024)
Branch: master
https://github.com/mongodb/mongo-csharp-driver/commit/9bbca930bc062c36f806a6d17dbf3a40d97ff831

Generated at Wed Feb 07 21:48:23 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.