svn commit: r1828529 - /jackrabbit/oak/trunk/oak-parent/pom.xml

2018-04-06 Thread stillalex
Author: stillalex
Date: Fri Apr  6 14:59:41 2018
New Revision: 1828529

URL: http://svn.apache.org/viewvc?rev=1828529=rev
Log:
OAK-7364 code coverage checks fail on Java 10


Modified:
jackrabbit/oak/trunk/oak-parent/pom.xml

Modified: jackrabbit/oak/trunk/oak-parent/pom.xml
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-parent/pom.xml?rev=1828529=1828528=1828529=diff
==
--- jackrabbit/oak/trunk/oak-parent/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-parent/pom.xml Fri Apr  6 14:59:41 2018
@@ -390,7 +390,7 @@
 
   org.jacoco
   jacoco-maven-plugin
-  0.7.9
+  0.8.1
 
   
 




svn commit: r1828504 - /jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoBlobStore.java

2018-04-06 Thread amitj
Author: amitj
Date: Fri Apr  6 09:00:33 2018
New Revision: 1828504

URL: http://svn.apache.org/viewvc?rev=1828504=rev
Log:
OAK-7389: Mongo/FileBlobStore does not update timestamp for already existing 
blobs

Revert unrelated change

Modified:

jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoBlobStore.java

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoBlobStore.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoBlobStore.java?rev=1828504=1828503=1828504=diff
==
--- 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoBlobStore.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoBlobStore.java
 Fri Apr  6 09:00:33 2018
@@ -165,13 +165,9 @@ public class MongoBlobStore extends Cach
 return;
 }
 String id = StringUtils.convertBytesToHex(blockId.getDigest());
-updateTimestamp(id, minLastModified);
-}
-
-private void updateTimestamp(String id, long minLastModified) {
 Bson query = getBlobQuery(id, minLastModified);
 Bson update = new BasicDBObject("$set",
-new BasicDBObject(MongoBlob.KEY_LAST_MOD, 
System.currentTimeMillis()));
+new BasicDBObject(MongoBlob.KEY_LAST_MOD, 
System.currentTimeMillis()));
 getBlobCollection().updateOne(query, update);
 }
 




svn commit: r1828502 - in /jackrabbit/oak/trunk: oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/ oak-blob/src/test/java/org/apache/jackrabbit/oak/spi/blob/ oak-store-document/src/main/java/

2018-04-06 Thread amitj
Author: amitj
Date: Fri Apr  6 08:50:07 2018
New Revision: 1828502

URL: http://svn.apache.org/viewvc?rev=1828502=rev
Log:
OAK-7389: Mongo/FileBlobStore does not update timestamp for already existing 
blobs

Refresh the timestamp for FileBlobStore and upsert the blob for Mongo to update 
the timestamp in case already there

Modified:

jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/FileBlobStore.java

jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/MemoryBlobStore.java

jackrabbit/oak/trunk/oak-blob/src/test/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStoreTest.java

jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoBlobStore.java

Modified: 
jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/FileBlobStore.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/FileBlobStore.java?rev=1828502=1828501=1828502=diff
==
--- 
jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/FileBlobStore.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/FileBlobStore.java
 Fri Apr  6 08:50:07 2018
@@ -109,6 +109,7 @@ public class FileBlobStore extends Abstr
 protected synchronized void storeBlock(byte[] digest, int level, byte[] 
data) throws IOException {
 File f = getFile(digest, false);
 if (f.exists()) {
+FileUtils.touch(f);
 return;
 }
 File parent = f.getParentFile();

Modified: 
jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/MemoryBlobStore.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/MemoryBlobStore.java?rev=1828502=1828501=1828502=diff
==
--- 
jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/MemoryBlobStore.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/MemoryBlobStore.java
 Fri Apr  6 08:50:07 2018
@@ -33,6 +33,7 @@ public class MemoryBlobStore extends Abs
 
 private HashMap map = new HashMap();
 private HashMap old = new HashMap();
+private HashMap timestamps = new HashMap();
 private boolean mark;
 
 @Override
@@ -46,7 +47,9 @@ public class MemoryBlobStore extends Abs
 
 @Override
 protected synchronized void storeBlock(byte[] digest, int level, byte[] 
data) {
-map.put(new BlockId(digest, 0), data);
+BlockId id =  new BlockId(digest, 0);
+map.put(id, data);
+timestamps.put(id, System.currentTimeMillis());
 }
 
 @Override
@@ -90,8 +93,11 @@ public class MemoryBlobStore extends Abs
 for (String chunkId : chunkIds) {
 BlockId id = new BlockId(StringUtils.convertHexToBytes(chunkId), 
0);
 if (map.containsKey(id)) {
-map.remove(id);
-count++;
+if (maxLastModifiedTime == 0 || (maxLastModifiedTime > 0 && 
maxLastModifiedTime > timestamps.get(id))) {
+map.remove(id);
+timestamps.remove(id);
+count++;
+}
 } else if (old.containsKey(id)) {
 old.remove(id);
 count++;

Modified: 
jackrabbit/oak/trunk/oak-blob/src/test/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStoreTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob/src/test/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStoreTest.java?rev=1828502=1828501=1828502=diff
==
--- 
jackrabbit/oak/trunk/oak-blob/src/test/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStoreTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-blob/src/test/java/org/apache/jackrabbit/oak/spi/blob/AbstractBlobStoreTest.java
 Fri Apr  6 08:50:07 2018
@@ -446,6 +446,28 @@ public abstract class AbstractBlobStoreT
 }
 
 @Test
+public void deleteUpdatedBlob() throws Exception {
+String id = store.writeBlob(randomStream(0, getArtifactSize()));
+Thread.sleep(100);
+
+long beforeUpdateTime = System.currentTimeMillis();
+
+Thread.sleep(1000);
+
+// Should update the timestamp
+String id2 = store.writeBlob(randomStream(0, getArtifactSize()));
+assertEquals(id, id2);
+
+Set chunks = Sets.newHashSet();
+Iterator iter = store.resolveChunks(id.toString());
+while (iter.hasNext()) {
+chunks.add(iter.next());
+}
+long count