Author: tomekr
Date: Thu Jul 21 12:38:36 2016
New Revision: 1753672
URL: http://svn.apache.org/viewvc?rev=1753672&view=rev
Log:
OAK-4587: Don't ignore the cached NULLs in bulk createOrUpdate for Mongo
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java?rev=1753672&r1=1753671&r2=1753672&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
Thu Jul 21 12:38:36 2016
@@ -957,7 +957,7 @@ public class MongoDocumentStore implemen
Map<String, NodeDocument> nodes = new HashMap<String, NodeDocument>();
for (String key : keys) {
NodeDocument cached = nodesCache.getIfPresent(key);
- if (cached != null && cached != NodeDocument.NULL) {
+ if (cached != null) {
nodes.put(key, cached);
}
}
@@ -989,7 +989,7 @@ public class MongoDocumentStore implemen
for (String key : difference(bulkOperations.keySet(),
bulkResult.failedUpdates)) {
T oldDoc = oldDocs.get(key);
- if (oldDoc != null) {
+ if (oldDoc != null && oldDoc != NodeDocument.NULL) {
NodeDocument newDoc = (NodeDocument)
applyChanges(collection, oldDoc, bulkOperations.get(key));
docsToCache.add(newDoc);
}
@@ -1061,7 +1061,7 @@ public class MongoDocumentStore implemen
QueryBuilder query = createQueryForUpdate(id,
updateOp.getConditions());
T oldDoc = oldDocs.get(id);
DBObject update;
- if (oldDoc == null) {
+ if (oldDoc == null || oldDoc == NodeDocument.NULL) {
query.and(Document.MOD_COUNT).exists(false);
update = createUpdate(updateOp, true);
} else {