Uploaded image for project: 'C# Driver'
  1. C# Driver
  2. CSHARP-2353

BsonDocument.DeepClone() fails on documents with duplicate element names

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Minor - P4 Minor - P4
    • 2.25.0
    • Affects Version/s: 2.7.0
    • Component/s: BSON
    • Labels:
      None
    • Environment:
      All
    • Fully Compatible
    • Not Needed
    • Hide

      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?

      Show
      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?

      The following code fails:

      var doc = new BsonDocument() { AllowDuplicateNames = true };

      doc.Add("a", 1);

      doc.Add("a", 2);

      var doc2 = doc.DeepClone();

       

      This is because DeepClone does:

      {{ BsonDocument clone = new BsonDocument();}}
      {{ foreach (BsonElement element in _elements)}}
      {{ {}}
        clone.Add(element.DeepClone());
      {{ }}}
      {{ return clone;}}

      Changing the first line to:

      BsonDocument clone = new BsonDocument() { AllowDuplicateNames = AllowDuplicateNames };

      fixes the problem.

       

            Assignee:
            boris.dogadov@mongodb.com Boris Dogadov
            Reporter:
            admilazz Adam Milazzo
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: