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 {


Reply via email to