Skip to content

Commit dadb5d9

Browse files
committed
JAVA-2107: Optimize DefaultDBCallback.objectDone by only looking to see if the BSONObject should be replaced by a DBRef if it's not an instance of BasicBSONList
1 parent 15ad618 commit dadb5d9

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

driver/src/main/com/mongodb/DefaultDBCallback.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import org.bson.BSONObject;
2020
import org.bson.BasicBSONCallback;
21+
import org.bson.types.BasicBSONList;
2122
import org.bson.types.ObjectId;
2223

2324
import java.util.Collections;
@@ -64,11 +65,12 @@ public void gotDBRef(final String name, final String namespace, final ObjectId i
6465
public Object objectDone() {
6566
String name = curName();
6667
BSONObject document = (BSONObject) super.objectDone();
67-
Iterator<String> iterator = document.keySet().iterator();
68-
if (iterator.hasNext() && iterator.next().equals("$ref") && iterator.hasNext() && iterator.next().equals("$id")) {
69-
_put(name, new DBRef((String) document.get("$ref"), document.get("$id")));
68+
if (!(document instanceof BasicBSONList)) {
69+
Iterator<String> iterator = document.keySet().iterator();
70+
if (iterator.hasNext() && iterator.next().equals("$ref") && iterator.hasNext() && iterator.next().equals("$id")) {
71+
_put(name, new DBRef((String) document.get("$ref"), document.get("$id")));
72+
}
7073
}
71-
7274
return document;
7375
}
7476

0 commit comments

Comments
 (0)