Author: tomekr
Date: Thu Jul 21 12:47:37 2016
New Revision: 1753679
URL: http://svn.apache.org/viewvc?rev=1753679&view=rev
Log:
OAK-4587: Don't ignore the cached NULLs in bulk createOrUpdate for Mongo
Modified:
jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
Modified:
jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java?rev=1753679&r1=1753678&r2=1753679&view=diff
==============================================================================
---
jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
(original)
+++
jackrabbit/oak/branches/1.4/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
Thu Jul 21 12:47:37 2016
@@ -904,7 +904,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);
}
}
@@ -936,7 +936,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);
}
@@ -1003,7 +1003,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 {