-
Type:
Bug
-
Resolution: Won't Fix
-
Priority:
Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: BSON
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Please consider the following code:
var item1 = new BsonDocument();
var item2 = new BsonDocument();
item1.Add(new BsonElement("cycle_1", item2));
item2.Add(new BsonElement("cycle_2", item1));
Now, If I call item1.GetHashCode(), the application will terminate due to stack overflow exception (in my case I tried to add item1 to HashSet).
Sure an exception should be thrown, but stackoverflow exception terminates a .NET application. I looked in the source code, and saw that BsonDocument.GetHashCode also calls GetHashCode of inner elements, which in this case cause the infinite loop.
Is this considered a bug, or should the programmer know he should avoid such scenarios?