You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by am...@apache.org on 2016/11/15 09:56:51 UTC

svn commit: r1769767 - /jackrabbit/trunk/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/CachingDataStore.java

Author: amitj
Date: Tue Nov 15 09:56:51 2016
New Revision: 1769767

URL: http://svn.apache.org/viewvc?rev=1769767&view=rev
Log:
JCR-4007: CachingDataStore - touching every time on getRecord() was unnecessary

Patch from Woonsan Ko

Modified:
    jackrabbit/trunk/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/CachingDataStore.java

Modified: jackrabbit/trunk/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/CachingDataStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/CachingDataStore.java?rev=1769767&r1=1769766&r2=1769767&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/CachingDataStore.java (original)
+++ jackrabbit/trunk/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/CachingDataStore.java Tue Nov 15 09:56:51 2016
@@ -149,7 +149,7 @@ public abstract class CachingDataStore e
     private File tmpDir;
 
     private String secret;
-    
+
     /**
      * Flag to indicate if lastModified is updated asynchronously.
      */
@@ -467,7 +467,9 @@ public abstract class CachingDataStore e
             if (getLength(identifier) > -1) {
                 LOG.trace("getRecord: [{}]  retrieved using getLength",
                     identifier);
-                touchInternal(identifier);
+                if (minModifiedDate > 0) {
+                    touchInternal(identifier);
+                }
                 usesIdentifier(identifier);
                 return new CachingDataRecord(this, identifier);
             } else if (asyncWriteCache.hasEntry(fileName, minModifiedDate > 0)) {
@@ -505,7 +507,9 @@ public abstract class CachingDataStore e
                 LOG.trace(
                     "getRecordIfStored: [{}]  retrieved using recLenCache",
                     identifier);
-                touchInternal(identifier);
+                if (minModifiedDate > 0) {
+                    touchInternal(identifier);
+                }
                 usesIdentifier(identifier);
                 return new CachingDataRecord(this, identifier);
             } else {
@@ -515,7 +519,9 @@ public abstract class CachingDataStore e
                         "getRecordIfStored :[{}]  retrieved from backend",
                         identifier);
                     recLenCache.put(identifier, length);
-                    touchInternal(identifier);
+                    if (minModifiedDate > 0) {
+                        touchInternal(identifier);
+                    }
                     usesIdentifier(identifier);
                     return new CachingDataRecord(this, identifier);
                 } catch (DataStoreException ignore) {