Author: mreutegg
Date: Thu Sep 28 08:07:52 2017
New Revision: 1809959

URL: http://svn.apache.org/viewvc?rev=1809959&view=rev
Log:
OAK-6738: MemoryDocumentStore should optionally maintain _modCount

Modified:
    
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java?rev=1809959&r1=1809958&r2=1809959&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java
 Thu Sep 28 08:07:52 2017
@@ -92,10 +92,17 @@ public class MemoryDocumentStore impleme
 
     private final Map<String, String> metadata;
 
+    private final boolean maintainModCount;
+
     public MemoryDocumentStore() {
+        this(false);
+    }
+
+    public MemoryDocumentStore(boolean maintainModCount) {
         metadata = ImmutableMap.<String,String>builder()
                         .put("type", "memory")
                         .build();
+        this.maintainModCount = maintainModCount;
     }
 
     @Override
@@ -326,6 +333,7 @@ public class MemoryDocumentStore impleme
             }
             // update the document
             UpdateUtils.applyChanges(doc, update);
+            maintainModCount(doc);
             doc.seal();
             map.put(update.getId(), doc);
             return oldDoc;
@@ -466,4 +474,15 @@ public class MemoryDocumentStore impleme
         // the MemoryDocumentStore has no delays, thus return 0
         return 0;
     }
+
+    private void maintainModCount(Document doc) {
+        if (!maintainModCount) {
+            return;
+        }
+        Long modCount = doc.getModCount();
+        if (modCount == null) {
+            modCount = 0L;
+        }
+        doc.put(Document.MOD_COUNT, modCount + 1);
+    }
 }
\ No newline at end of file


Reply via email to