svn commit: r1826082 - in /jackrabbit/oak/branches/1.8: ./ oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java
Author: reschke Date: Wed Mar 7 08:07:47 2018 New Revision: 1826082 URL: http://svn.apache.org/viewvc?rev=1826082&view=rev Log: OAK-7313: RDB*Store: add DEBUG level logging for filters in RDBVersionGCSupport (ported to 1.8) Modified: jackrabbit/oak/branches/1.8/ (props changed) jackrabbit/oak/branches/1.8/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java Propchange: jackrabbit/oak/branches/1.8/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Mar 7 08:07:47 2018 @@ -1,3 +1,3 @@ /jackrabbit/oak/branches/1.0:1665962 -/jackrabbit/oak/trunk:1820660-1820661,1820729,1820734,1820859,1820861,1820878,1820888,1820947,1821130,1821140-1821141,1821240,1821249,1821258,1821325,1821358,1821361-1821362,1821370,1821375,1821393,1821477,1821487,1821516,1821665,1821668,1821681,1822121,1822201,1822723,1822808,1822850,1822934,1823135,1823163,1823169,1824962,1825362,1825381,1825442,1825448,1825466,1825470,1825475,1825523,1825525,1825619-1825621,1825651,1825992 +/jackrabbit/oak/trunk:1820660-1820661,1820729,1820734,1820859,1820861,1820878,1820888,1820947,1821130,1821140-1821141,1821240,1821249,1821258,1821325,1821358,1821361-1821362,1821370,1821375,1821393,1821477,1821487,1821516,1821665,1821668,1821681,1822121,1822201,1822723,1822808,1822850,1822934,1823135,1823163,1823169,1824962,1825362,1825381,1825442,1825448,1825466,1825470,1825475,1825523,1825525,1825619-1825621,1825651,1825992,1826079 /jackrabbit/trunk:1345480 Modified: jackrabbit/oak/branches/1.8/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.8/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java?rev=1826082&r1=1826081&r2=1826082&view=diff == --- jackrabbit/oak/branches/1.8/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java (original) +++ jackrabbit/oak/branches/1.8/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java Wed Mar 7 08:07:47 2018 @@ -72,6 +72,7 @@ public class RDBVersionGCSupport extends final long oldestRevTimeStamp) { Iterable it1; Iterable it2; +String name1, name2; // for schema 0 or 1 rows, we'll have to constrain the path List excludeKeyPatterns = Arrays.asList("_:/%", "__:/%", "___:/%"); @@ -85,6 +86,7 @@ public class RDBVersionGCSupport extends List conditions1 = new ArrayList(); conditions1.add(new QueryCondition(NodeDocument.SD_TYPE, "in", gcTypeCodes)); conditions1.add(new QueryCondition(RDBDocumentStore.VERSIONPROP, ">=", 2)); +name1 = "version 2 query"; it1 = store.queryAsIterable(Collection.NODES, null, null, Collections.emptyList(), conditions1, Integer.MAX_VALUE, null); @@ -92,6 +94,7 @@ public class RDBVersionGCSupport extends conditions2.add(new QueryCondition(RDBDocumentStore.VERSIONPROP, "null or <", 2)); it2 = store.queryAsIterable(Collection.NODES, null, null, excludeKeyPatterns, conditions2, Integer.MAX_VALUE, null); +name2 = "version <2 fallback on " + excludeKeyPatterns; } catch (UnsupportedIndexedPropertyException ex) { // this will happen if we query a table that doesn't have the SD* // columns - create a new query without the constraint, and let the @@ -99,26 +102,74 @@ public class RDBVersionGCSupport extends it1 = store.queryAsIterable(Collection.NODES, null, null, excludeKeyPatterns, Collections.emptyList(), Integer.MAX_VALUE, null); it2 = Collections.emptySet(); +name1 = "version <2 fallback on " + excludeKeyPatterns; +name2 = ""; } final Iterable fit1 = it1; final Iterable fit2 = it2; -return CloseableIterable.wrap(Iterables.filter(Iterables.concat(fit1, fit2), new Predicate() { +Predicate pred = new Predicate() { @Override public boolean apply(NodeDocument doc) { return gcTypes.contains(doc.getSplitDocType()) && doc.hasAllRevisionLessThan(oldestRevTimeStamp) && !isDefaultNoBranchSplitNewerThan(doc, sweepRevs); } -}), new Closeable() { +}; + +final CountingPredicate cp1 = new CountingPredicate(name1, pred); +final CountingPredicate cp2 = new CountingPredicate(name2, pred); + +return CloseableIterable.wrap(Iterables.concat(Iterables.filter(fit1, cp1), Iterables.filter(fit2, cp2)), new Closeable() {
svn commit: r1826084 - /jackrabbit/oak/trunk/oak-store-document/pom.xml
Author: mreutegg Date: Wed Mar 7 08:33:45 2018 New Revision: 1826084 URL: http://svn.apache.org/viewvc?rev=1826084&view=rev Log: OAK-7310: Empty package-info.java in o.a.j.o.plugins.document.rdb causes unnecessary rebuild Modified: jackrabbit/oak/trunk/oak-store-document/pom.xml Modified: jackrabbit/oak/trunk/oak-store-document/pom.xml URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/pom.xml?rev=1826084&r1=1826083&r2=1826084&view=diff == --- jackrabbit/oak/trunk/oak-store-document/pom.xml (original) +++ jackrabbit/oak/trunk/oak-store-document/pom.xml Wed Mar 7 08:33:45 2018 @@ -59,6 +59,15 @@ + +maven-compiler-plugin + + + +-Xpkginfo:always + + +
svn commit: r1826086 - in /jackrabbit/oak/trunk/oak-store-document/src: main/java/org/apache/jackrabbit/oak/plugins/document/ test/java/org/apache/jackrabbit/oak/plugins/document/
Author: mreutegg Date: Wed Mar 7 08:37:19 2018 New Revision: 1826086 URL: http://svn.apache.org/viewvc?rev=1826086&view=rev Log: OAK-7308: Retry commit on transient DocumentStoreException Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBranch.java jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/FailingDocumentStore.java Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBranch.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBranch.java?rev=1826086&r1=1826085&r2=1826086&view=diff == --- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBranch.java (original) +++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBranch.java Wed Mar 7 08:37:19 2018 @@ -347,7 +347,15 @@ class DocumentNodeStoreBranch implements if (msg == null) { msg = "Failed to merge changes to the underlying store"; } -return new CommitFailedException(OAK, 1, msg, t); +String type = OAK; +if (t instanceof DocumentStoreException) { +DocumentStoreException dse = (DocumentStoreException) t; +if (dse.getType() == DocumentStoreException.Type.TRANSIENT) { +// set type to MERGE, which indicates a retry may work +type = MERGE; +} +} +return new CommitFailedException(type, 1, msg, t); } /** Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java?rev=1826086&r1=1826085&r2=1826086&view=diff == --- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java (original) +++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreTest.java Wed Mar 7 08:37:19 2018 @@ -24,6 +24,7 @@ import static org.apache.jackrabbit.oak. import static org.apache.jackrabbit.oak.plugins.document.Collection.JOURNAL; import static org.apache.jackrabbit.oak.plugins.document.Collection.NODES; import static org.apache.jackrabbit.oak.plugins.document.Collection.SETTINGS; +import static org.apache.jackrabbit.oak.plugins.document.DocumentStoreException.Type.TRANSIENT; import static org.apache.jackrabbit.oak.plugins.document.NodeDocument.MODIFIED_IN_SECS; import static org.apache.jackrabbit.oak.plugins.document.NodeDocument.MODIFIED_IN_SECS_RESOLUTION; import static org.apache.jackrabbit.oak.plugins.document.NodeDocument.NUM_REVS_THRESHOLD; @@ -3604,6 +3605,38 @@ public class DocumentNodeStoreTest { ); } +@Test +public void retryOnTransientDocumentStoreException() { +FailingDocumentStore store = new FailingDocumentStore(new MemoryDocumentStore()); +DocumentNodeStore ns = builderProvider.newBuilder() +.setAsyncDelay(0).setDocumentStore(store).getNodeStore(); +NodeBuilder builder = ns.getRoot().builder(); +builder.child("foo"); + +store.fail().after(0).once(); +try { +merge(ns, builder); +fail("CommitFailedException expected"); +} catch (CommitFailedException e) { +// expected +} finally { +store.fail().never(); +} + +builder = ns.getRoot().builder(); +builder.child("bar"); + +store.fail().after(0).withType(TRANSIENT).once(); +try { +merge(ns, builder); +} catch (CommitFailedException e) { +fail(e.toString()); +} finally { +store.fail().never(); +} +assertTrue(ns.getRoot().hasChildNode("bar")); +} + private void getChildNodeCountTest(int numChildren, Iterable maxValues, Iterable expectedValues) Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/FailingDocumentStore.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/FailingDocumentStore.java?rev=1826086&r1=1826085&r2
svn commit: r1826087 - /jackrabbit/oak/trunk/oak-store-document/pom.xml
Author: mreutegg Date: Wed Mar 7 08:46:09 2018 New Revision: 1826087 URL: http://svn.apache.org/viewvc?rev=1826087&view=rev Log: OAK-7310: Empty package-info.java in o.a.j.o.plugins.document.rdb causes unnecessary rebuild Revert revision 1826084 Modified: jackrabbit/oak/trunk/oak-store-document/pom.xml Modified: jackrabbit/oak/trunk/oak-store-document/pom.xml URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/pom.xml?rev=1826087&r1=1826086&r2=1826087&view=diff == --- jackrabbit/oak/trunk/oak-store-document/pom.xml (original) +++ jackrabbit/oak/trunk/oak-store-document/pom.xml Wed Mar 7 08:46:09 2018 @@ -59,15 +59,6 @@ - -maven-compiler-plugin - - - --Xpkginfo:always - - -
svn commit: r1826089 - /jackrabbit/oak/trunk/oak-parent/pom.xml
Author: mreutegg Date: Wed Mar 7 09:18:17 2018 New Revision: 1826089 URL: http://svn.apache.org/viewvc?rev=1826089&view=rev Log: OAK-7310: Empty package-info.java causes unnecessary rebuild 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=1826089&r1=1826088&r2=1826089&view=diff == --- jackrabbit/oak/trunk/oak-parent/pom.xml (original) +++ jackrabbit/oak/trunk/oak-parent/pom.xml Wed Mar 7 09:18:17 2018 @@ -101,6 +101,10 @@ ${java.version} ${java.version} + + + -Xpkginfo:always +
svn commit: r1826090 - /jackrabbit/oak/trunk/oak-parent/pom.xml
Author: mreutegg Date: Wed Mar 7 09:51:30 2018 New Revision: 1826090 URL: http://svn.apache.org/viewvc?rev=1826090&view=rev Log: OAK-7315: Remove redundant JavaDoc link to Java 7 API 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=1826090&r1=1826089&r2=1826090&view=diff == --- jackrabbit/oak/trunk/oak-parent/pom.xml (original) +++ jackrabbit/oak/trunk/oak-parent/pom.xml Wed Mar 7 09:51:30 2018 @@ -126,7 +126,6 @@ ${java.version} true - http://docs.oracle.com/javase/7/docs/api/ https://docs.adobe.com/docs/en/spec/javax.jcr/javadocs/jcr-2.0/ http://jackrabbit.apache.org/api/trunk/
svn commit: r1826091 - /jackrabbit/oak/trunk/oak-it-osgi/test-bundles.xml
Author: adulceanu Date: Wed Mar 7 10:01:07 2018 New Revision: 1826091 URL: http://svn.apache.org/viewvc?rev=1826091&view=rev Log: OAK-7259 - Improve SegmentNodeStoreStats to include number of commits per thread and threads currently waiting on the semaphore Added missing bundle reference in oak-it-osgi/test-bundles.xml Modified: jackrabbit/oak/trunk/oak-it-osgi/test-bundles.xml Modified: jackrabbit/oak/trunk/oak-it-osgi/test-bundles.xml URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it-osgi/test-bundles.xml?rev=1826091&r1=1826090&r2=1826091&view=diff == --- jackrabbit/oak/trunk/oak-it-osgi/test-bundles.xml (original) +++ jackrabbit/oak/trunk/oak-it-osgi/test-bundles.xml Wed Mar 7 10:01:07 2018 @@ -51,6 +51,7 @@ org.apache.jackrabbit:oak-security-spi org.apache.jackrabbit:oak-blob-plugins io.dropwizard.metrics:metrics-core + com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru
svn commit: r1826092 - in /jackrabbit/oak/trunk/oak-store-document/src: main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtils.java test/java/org/apache/jackrabbit/oak/plugins/document/
Author: mreutegg Date: Wed Mar 7 10:03:26 2018 New Revision: 1826092 URL: http://svn.apache.org/viewvc?rev=1826092&view=rev Log: OAK-7306: MongoDocumentStore: use transient DocumentStoreException type where appropriate Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtils.java jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtilsTest.java Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtils.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtils.java?rev=1826092&r1=1826091&r2=1826092&view=diff == --- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtils.java (original) +++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtils.java Wed Mar 7 10:03:26 2018 @@ -27,6 +27,7 @@ import com.mongodb.MongoException; import com.mongodb.MongoNotPrimaryException; import com.mongodb.MongoSocketException; import com.mongodb.MongoWriteConcernException; +import com.mongodb.WriteConcernException; import org.apache.jackrabbit.oak.plugins.document.DocumentStoreException.Type; @@ -153,8 +154,9 @@ class MongoUtils { || t instanceof MongoWriteConcernException || t instanceof MongoNotPrimaryException) { type = Type.TRANSIENT; -} else if (t instanceof MongoCommandException) { -int code = ((MongoCommandException) t).getErrorCode(); +} else if (t instanceof MongoCommandException +|| t instanceof WriteConcernException) { +int code = ((MongoException) t).getCode(); if (code == 11600 // InterruptedAtShutdown || code == 11601// Interrupted || code == 11602) { // InterruptedDueToReplStateChange Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtilsTest.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtilsTest.java?rev=1826092&r1=1826091&r2=1826092&view=diff == --- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtilsTest.java (original) +++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtilsTest.java Wed Mar 7 10:03:26 2018 @@ -20,10 +20,12 @@ import java.io.IOException; import com.mongodb.DBCollection; import com.mongodb.DBObject; +import com.mongodb.DuplicateKeyException; import com.mongodb.MongoCommandException; import com.mongodb.MongoException; import com.mongodb.MongoSocketException; import com.mongodb.ServerAddress; +import com.mongodb.WriteConcernException; import org.apache.jackrabbit.oak.plugins.document.MongoConnectionFactory; import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection; @@ -133,18 +135,29 @@ public class MongoUtilsTest { public void documentStoreExceptionType() { assertEquals(GENERIC, getDocumentStoreExceptionTypeFor(new IOException())); assertEquals(GENERIC, getDocumentStoreExceptionTypeFor(new MongoException("message"))); -assertEquals(GENERIC, getDocumentStoreExceptionTypeFor(createMongoCommandException(42))); -assertEquals(TRANSIENT, getDocumentStoreExceptionTypeFor(createMongoCommandException(11600))); -assertEquals(TRANSIENT, getDocumentStoreExceptionTypeFor(createMongoCommandException(11601))); -assertEquals(TRANSIENT, getDocumentStoreExceptionTypeFor(createMongoCommandException(11602))); +assertEquals(GENERIC, getDocumentStoreExceptionTypeFor(newMongoCommandException(42))); +assertEquals(GENERIC, getDocumentStoreExceptionTypeFor(new DuplicateKeyException(response(11000), new ServerAddress(), null))); +assertEquals(TRANSIENT, getDocumentStoreExceptionTypeFor(newWriteConcernException(11600))); +assertEquals(TRANSIENT, getDocumentStoreExceptionTypeFor(newWriteConcernException(11601))); +assertEquals(TRANSIENT, getDocumentStoreExceptionTypeFor(newWriteConcernException(11602))); +assertEquals(TRANSIENT, getDocumentStoreExceptionTypeFor(newMongoCommandException(11600))); +assertEquals(TRANSIENT, getDocumentStoreExceptionTypeFor(newMongoCommandException(11601))); +assertEquals(TRANSIENT, getDocumentStoreExceptionTypeFor(newMongoCommandException(11602))); assertEquals(TRANSIENT, getDocum
svn commit: r1826093 - in /jackrabbit/oak/branches/1.8: ./ oak-parent/pom.xml
Author: mreutegg Date: Wed Mar 7 10:05:58 2018 New Revision: 1826093 URL: http://svn.apache.org/viewvc?rev=1826093&view=rev Log: OAK-7315: Remove redundant JavaDoc link to Java 7 API Merged revision 1826090 from trunk Modified: jackrabbit/oak/branches/1.8/ (props changed) jackrabbit/oak/branches/1.8/oak-parent/pom.xml Propchange: jackrabbit/oak/branches/1.8/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Mar 7 10:05:58 2018 @@ -1,3 +1,3 @@ /jackrabbit/oak/branches/1.0:1665962 -/jackrabbit/oak/trunk:1820660-1820661,1820729,1820734,1820859,1820861,1820878,1820888,1820947,1821130,1821140-1821141,1821240,1821249,1821258,1821325,1821358,1821361-1821362,1821370,1821375,1821393,1821477,1821487,1821516,1821665,1821668,1821681,1822121,1822201,1822723,1822808,1822850,1822934,1823135,1823163,1823169,1824962,1825362,1825381,1825442,1825448,1825466,1825470,1825475,1825523,1825525,1825619-1825621,1825651,1825992,1826079 +/jackrabbit/oak/trunk:1820660-1820661,1820729,1820734,1820859,1820861,1820878,1820888,1820947,1821130,1821140-1821141,1821240,1821249,1821258,1821325,1821358,1821361-1821362,1821370,1821375,1821393,1821477,1821487,1821516,1821665,1821668,1821681,1822121,1822201,1822723,1822808,1822850,1822934,1823135,1823163,1823169,1824962,1825362,1825381,1825442,1825448,1825466,1825470,1825475,1825523,1825525,1825619-1825621,1825651,1825992,1826079,1826090 /jackrabbit/trunk:1345480 Modified: jackrabbit/oak/branches/1.8/oak-parent/pom.xml URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.8/oak-parent/pom.xml?rev=1826093&r1=1826092&r2=1826093&view=diff == --- jackrabbit/oak/branches/1.8/oak-parent/pom.xml (original) +++ jackrabbit/oak/branches/1.8/oak-parent/pom.xml Wed Mar 7 10:05:58 2018 @@ -127,7 +127,6 @@ ${java.version} true - http://docs.oracle.com/javase/7/docs/api/ https://docs.adobe.com/docs/en/spec/javax.jcr/javadocs/jcr-2.0/ http://jackrabbit.apache.org/api/trunk/
svn commit: r1826096 - /jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java
Author: reschke Date: Wed Mar 7 13:15:37 2018 New Revision: 1826096 URL: http://svn.apache.org/viewvc?rev=1826096&view=rev Log: OAK-7314: RDB*Store: use SDMAXREV column in RevisionGC query Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java?rev=1826096&r1=1826095&r2=1826096&view=diff == --- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java (original) +++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java Wed Mar 7 13:15:37 2018 @@ -85,6 +85,7 @@ public class RDBVersionGCSupport extends List conditions1 = new ArrayList(); conditions1.add(new QueryCondition(NodeDocument.SD_TYPE, "in", gcTypeCodes)); +conditions1.add(new QueryCondition(NodeDocument.SD_MAX_REV_TIME_IN_SECS, "<=", NodeDocument.getModifiedInSecs(oldestRevTimeStamp))); conditions1.add(new QueryCondition(RDBDocumentStore.VERSIONPROP, ">=", 2)); name1 = "version 2 query"; it1 = store.queryAsIterable(Collection.NODES, null, null, Collections.emptyList(), conditions1,
svn commit: r1826097 - in /jackrabbit/oak/branches/1.8: ./ oak-parent/pom.xml
Author: reschke Date: Wed Mar 7 13:17:51 2018 New Revision: 1826097 URL: http://svn.apache.org/viewvc?rev=1826097&view=rev Log: OAK-7204: RDB*Store: update postgresql JDBC driver reference to 42.2.0 (ported to 1.8) Modified: jackrabbit/oak/branches/1.8/ (props changed) jackrabbit/oak/branches/1.8/oak-parent/pom.xml Propchange: jackrabbit/oak/branches/1.8/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Mar 7 13:17:51 2018 @@ -1,3 +1,3 @@ /jackrabbit/oak/branches/1.0:1665962 -/jackrabbit/oak/trunk:1820660-1820661,1820729,1820734,1820859,1820861,1820878,1820888,1820947,1821130,1821140-1821141,1821240,1821249,1821258,1821325,1821358,1821361-1821362,1821370,1821375,1821393,1821477,1821487,1821516,1821665,1821668,1821681,1822121,1822201,1822723,1822808,1822850,1822934,1823135,1823163,1823169,1824962,1825362,1825381,1825442,1825448,1825466,1825470,1825475,1825523,1825525,1825619-1825621,1825651,1825992,1826079,1826090 +/jackrabbit/oak/trunk:1820660-1820661,1820729,1820734,1820859,1820861,1820878,1820888,1820947,1821130,1821140-1821141,1821240,1821249,1821258,1821325,1821358,1821361-1821362,1821370,1821375,1821393,1821477,1821487,1821516,1821665,1821668,1821681,1822121,1822201,1822207,1822723,1822808,1822850,1822934,1823135,1823163,1823169,1824962,1825362,1825381,1825442,1825448,1825466,1825470,1825475,1825523,1825525,1825619-1825621,1825651,1825992,1826079,1826090 /jackrabbit/trunk:1345480 Modified: jackrabbit/oak/branches/1.8/oak-parent/pom.xml URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.8/oak-parent/pom.xml?rev=1826097&r1=1826096&r2=1826097&view=diff == --- jackrabbit/oak/branches/1.8/oak-parent/pom.xml (original) +++ jackrabbit/oak/branches/1.8/oak-parent/pom.xml Wed Mar 7 13:17:51 2018 @@ -898,7 +898,7 @@ org.postgresql postgresql - 42.1.4 + 42.2.0
svn commit: r1826098 - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/ main/java/org/apache/jackrabbit/oak/plugins/atomic/ test/java/org/apache/jackrabbit/oak/plugins/atomi
Author: davide Date: Wed Mar 7 13:57:55 2018 New Revision: 1826098 URL: http://svn.apache.org/viewvc?rev=1826098&view=rev Log: OAK-7225 - Replace AtomicCounter Supplier Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorTest.java Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java?rev=1826098&r1=1826097&r2=1826098&view=diff == --- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java (original) +++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java Wed Mar 7 13:57:55 2018 @@ -40,6 +40,7 @@ import java.util.concurrent.ThreadFactor import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Supplier; import javax.annotation.Nonnull; import javax.jcr.NoSuchWorkspaceException; @@ -50,7 +51,6 @@ import javax.management.StandardMBean; import javax.security.auth.login.LoginException; import com.google.common.base.Function; -import com.google.common.base.Supplier; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java?rev=1826098&r1=1826097&r2=1826098&view=diff == --- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java (original) +++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java Wed Mar 7 13:57:55 2018 @@ -20,6 +20,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Supplier; import javax.annotation.Nullable; @@ -43,7 +44,6 @@ import org.osgi.service.component.annota import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Supplier; import com.google.common.util.concurrent.ThreadFactoryBuilder; import static org.osgi.service.component.annotations.ReferenceCardinality.OPTIONAL; Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorTest.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorTest.java?rev=1826098&r1=1826097&r2=1826098&view=diff == --- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorTest.java (original) +++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorTest.java Wed Mar 7 13:57:55 2018 @@ -46,11 +46,11 @@ import java.util.concurrent.ScheduledExe import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import java.util.function.Supplier; import javax.annotation.CheckForNull; import javax.annotation.Nonnull; -import com.google.common.base.Supplier; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; import org.apache.jackrabbit.oak.api.CommitFailedException;
svn commit: r1826110 - in /jackrabbit/oak/branches/1.8: ./ oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java
Author: reschke Date: Wed Mar 7 14:32:29 2018 New Revision: 1826110 URL: http://svn.apache.org/viewvc?rev=1826110&view=rev Log: OAK-7314: RDB*Store: use SDMAXREV column in RevisionGC query (ported to 1.8) Modified: jackrabbit/oak/branches/1.8/ (props changed) jackrabbit/oak/branches/1.8/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java Propchange: jackrabbit/oak/branches/1.8/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Mar 7 14:32:29 2018 @@ -1,3 +1,3 @@ /jackrabbit/oak/branches/1.0:1665962 -/jackrabbit/oak/trunk:1820660-1820661,1820729,1820734,1820859,1820861,1820878,1820888,1820947,1821130,1821140-1821141,1821240,1821249,1821258,1821325,1821358,1821361-1821362,1821370,1821375,1821393,1821477,1821487,1821516,1821665,1821668,1821681,1822121,1822201,1822207,1822723,1822808,1822850,1822934,1823135,1823163,1823169,1824962,1825362,1825381,1825442,1825448,1825466,1825470,1825475,1825523,1825525,1825619-1825621,1825651,1825992,1826079,1826090 +/jackrabbit/oak/trunk:1820660-1820661,1820729,1820734,1820859,1820861,1820878,1820888,1820947,1821130,1821140-1821141,1821240,1821249,1821258,1821325,1821358,1821361-1821362,1821370,1821375,1821393,1821477,1821487,1821516,1821665,1821668,1821681,1822121,1822201,1822207,1822723,1822808,1822850,1822934,1823135,1823163,1823169,1824962,1825362,1825381,1825442,1825448,1825466,1825470,1825475,1825523,1825525,1825619-1825621,1825651,1825992,1826079,1826090,1826096 /jackrabbit/trunk:1345480 Modified: jackrabbit/oak/branches/1.8/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.8/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java?rev=1826110&r1=1826109&r2=1826110&view=diff == --- jackrabbit/oak/branches/1.8/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java (original) +++ jackrabbit/oak/branches/1.8/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java Wed Mar 7 14:32:29 2018 @@ -85,6 +85,7 @@ public class RDBVersionGCSupport extends List conditions1 = new ArrayList(); conditions1.add(new QueryCondition(NodeDocument.SD_TYPE, "in", gcTypeCodes)); +conditions1.add(new QueryCondition(NodeDocument.SD_MAX_REV_TIME_IN_SECS, "<=", NodeDocument.getModifiedInSecs(oldestRevTimeStamp))); conditions1.add(new QueryCondition(RDBDocumentStore.VERSIONPROP, ">=", 2)); name1 = "version 2 query"; it1 = store.queryAsIterable(Collection.NODES, null, null, Collections.emptyList(), conditions1,
svn commit: r1826121 - /jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java
Author: mduerig Date: Wed Mar 7 15:05:40 2018 New Revision: 1826121 URL: http://svn.apache.org/viewvc?rev=1826121&view=rev Log: @trivial: correctly sort modifiers Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java?rev=1826121&r1=1826120&r2=1826121&view=diff == --- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java (original) +++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/BlobIdRecordTest.java Wed Mar 7 15:05:40 2018 @@ -42,7 +42,7 @@ import org.junit.rules.TemporaryFolder; public class BlobIdRecordTest { -private static abstract class IdMappingBlobStore implements BlobStore { +private abstract static class IdMappingBlobStore implements BlobStore { private final MemoryBlobStore bs = new MemoryBlobStore();
svn commit: r1826123 - /jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java
Author: mduerig Date: Wed Mar 7 15:55:12 2018 New Revision: 1826123 URL: http://svn.apache.org/viewvc?rev=1826123&view=rev Log: OAK-7317: SegmentParser#parseBlob does not long ids of external blobs Added ignored test case Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java?rev=1826123&r1=1826122&r2=1826123&view=diff == --- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java (original) +++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java Wed Mar 7 15:55:12 2018 @@ -20,6 +20,7 @@ package org.apache.jackrabbit.oak.segment; import static com.google.common.base.Strings.repeat; +import static com.google.common.collect.Lists.newArrayList; import static com.google.common.collect.Lists.newArrayListWithCapacity; import static com.google.common.collect.Maps.newHashMap; import static org.apache.jackrabbit.oak.api.Type.BINARY; @@ -30,6 +31,7 @@ import static org.apache.jackrabbit.oak. import static org.apache.jackrabbit.oak.segment.DefaultSegmentWriterBuilder.defaultSegmentWriterBuilder; import static org.apache.jackrabbit.oak.segment.Segment.MEDIUM_LIMIT; import static org.apache.jackrabbit.oak.segment.Segment.SMALL_LIMIT; +import static org.apache.jackrabbit.oak.segment.SegmentParser.BlobType.EXTERNAL; import static org.apache.jackrabbit.oak.segment.SegmentParser.BlobType.LONG; import static org.apache.jackrabbit.oak.segment.SegmentParser.BlobType.MEDIUM; import static org.apache.jackrabbit.oak.segment.SegmentParser.BlobType.SMALL; @@ -37,12 +39,19 @@ import static org.apache.jackrabbit.oak. import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import java.io.IOException; +import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Random; +import javax.annotation.CheckForNull; + +import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import org.apache.jackrabbit.oak.api.Blob; import org.apache.jackrabbit.oak.api.Type; @@ -53,12 +62,37 @@ import org.apache.jackrabbit.oak.segment import org.apache.jackrabbit.oak.segment.SegmentParser.NodeInfo; import org.apache.jackrabbit.oak.segment.SegmentParser.ValueInfo; import org.apache.jackrabbit.oak.segment.memory.MemoryStore; +import org.apache.jackrabbit.oak.spi.blob.BlobStore; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; +import org.junit.Assume; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +@RunWith(Parameterized.class) public class SegmentParserTest { +@Parameterized.Parameters(name="{1}") +public static Collection fixtures() throws Exception { +BlobStore shortIdBlobStore = mock(BlobStore.class); +when(shortIdBlobStore.writeBlob(any())).thenReturn("shortId"); + +BlobStore longIdBlobStore = mock(BlobStore.class); + when(longIdBlobStore.writeBlob(any())).thenReturn(Strings.repeat("shortId", 1000)); + +return newArrayList( +new Object[]{null, "No BlobStore"}, +new Object[]{shortIdBlobStore, "Short Id BlobStore"}, +new Object[]{longIdBlobStore, "Long Id BlobStore"}); +} + +private final BlobStore blobStore; + +public SegmentParserTest(BlobStore blobStore, String name) { +this.blobStore = blobStore; +} + private MemoryStore store; private DefaultSegmentWriter writer; @@ -138,7 +172,13 @@ public class SegmentParserTest { @Before public void setup() throws IOException { -store = new MemoryStore(); +store = new MemoryStore() { +@CheckForNull +@Override +public BlobStore getBlobStore() { +return blobStore; +} +}; writer = defaultSegmentWriterBuilder("").build(store); } @@ -334,12 +374,14 @@ public class SegmentParserTest { @Test public void longBlob() throws IOException { SegmentBlob blob = new SegmentBlob(store.getBlobStore(), writer.writeBlob(createRandomBlob(MEDIUM_LIMIT))); +// FIXME OAK-7317: SegmentParser#parseBlob does not long ids of external blobs +Assume.assumeTrue(blob.getBlobId() == null || "shortId".equals(blob.getBlobId())); ValueInfo valueInfo = new TestParser(store.g
svn commit: r1826128 - in /jackrabbit/oak/branches/1.8: ./ oak-parent/pom.xml
Author: reschke Date: Wed Mar 7 16:05:02 2018 New Revision: 1826128 URL: http://svn.apache.org/viewvc?rev=1826128&view=rev Log: OAK-7299: RDB*Store: update postgresql JDBC driver reference to 42.2.1 (ported to 1.8) Modified: jackrabbit/oak/branches/1.8/ (props changed) jackrabbit/oak/branches/1.8/oak-parent/pom.xml Propchange: jackrabbit/oak/branches/1.8/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Mar 7 16:05:02 2018 @@ -1,3 +1,3 @@ /jackrabbit/oak/branches/1.0:1665962 -/jackrabbit/oak/trunk:1820660-1820661,1820729,1820734,1820859,1820861,1820878,1820888,1820947,1821130,1821140-1821141,1821240,1821249,1821258,1821325,1821358,1821361-1821362,1821370,1821375,1821393,1821477,1821487,1821516,1821665,1821668,1821681,1822121,1822201,1822207,1822723,1822808,1822850,1822934,1823135,1823163,1823169,1824962,1825362,1825381,1825442,1825448,1825466,1825470,1825475,1825523,1825525,1825619-1825621,1825651,1825992,1826079,1826090,1826096 +/jackrabbit/oak/trunk:1820660-1820661,1820729,1820734,1820859,1820861,1820878,1820888,1820947,1821130,1821140-1821141,1821240,1821249,1821258,1821325,1821358,1821361-1821362,1821370,1821375,1821393,1821477,1821487,1821516,1821665,1821668,1821681,1822121,1822201,1822207,1822723,1822808,1822850,1822934,1823135,1823163,1823169,1824962,1825362,1825381,1825442,1825448,1825466,1825470,1825475,1825523,1825525,1825619-1825621,1825651,1825654,1825992,1826079,1826090,1826096 /jackrabbit/trunk:1345480 Modified: jackrabbit/oak/branches/1.8/oak-parent/pom.xml URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.8/oak-parent/pom.xml?rev=1826128&r1=1826127&r2=1826128&view=diff == --- jackrabbit/oak/branches/1.8/oak-parent/pom.xml (original) +++ jackrabbit/oak/branches/1.8/oak-parent/pom.xml Wed Mar 7 16:05:02 2018 @@ -898,7 +898,7 @@ org.postgresql postgresql - 42.2.0 + 42.2.1
svn commit: r1826132 - in /jackrabbit/oak/trunk/oak-segment-tar/src: main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java
Author: mduerig Date: Wed Mar 7 16:18:23 2018 New Revision: 1826132 URL: http://svn.apache.org/viewvc?rev=1826132&view=rev Log: OAK-7317: SegmentParser#parseBlob does not long ids of external blobs Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java?rev=1826132&r1=1826131&r2=1826132&view=diff == --- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java (original) +++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java Wed Mar 7 16:18:23 2018 @@ -19,17 +19,20 @@ package org.apache.jackrabbit.oak.segment; +import static com.google.common.base.Charsets.UTF_8; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.collect.Lists.newArrayList; import static com.google.common.collect.Lists.newArrayListWithCapacity; import static java.util.Collections.singletonList; +import static java.util.Objects.requireNonNull; import static org.apache.jackrabbit.oak.api.Type.BINARY; -import static org.apache.jackrabbit.oak.segment.SegmentStream.BLOCK_SIZE; import static org.apache.jackrabbit.oak.segment.ListRecord.LEVEL_SIZE; import static org.apache.jackrabbit.oak.segment.Segment.MEDIUM_LIMIT; import static org.apache.jackrabbit.oak.segment.Segment.RECORD_ID_BYTES; import static org.apache.jackrabbit.oak.segment.Segment.SMALL_LIMIT; +import static org.apache.jackrabbit.oak.segment.SegmentBlob.readBlobId; +import static org.apache.jackrabbit.oak.segment.SegmentStream.BLOCK_SIZE; import static org.apache.jackrabbit.oak.segment.Template.MANY_CHILD_NODES; import static org.apache.jackrabbit.oak.segment.Template.ZERO_CHILD_NODES; @@ -674,8 +677,13 @@ public class SegmentParser { size += (8 + RECORD_ID_BYTES + length); blobType = BlobType.LONG; } else if ((head & 0xf0) == 0xe0) { -// 1110 : external value -int length = (head & 0x0f) << 8 | (segment.readByte(blobId.getRecordNumber(), 1) & 0xff); +// 1110 : external value, short blob ID +int length = UTF_8.encode(requireNonNull(readBlobId(segment, blobId.getRecordNumber(.limit(); +size += (2 + length); +blobType = BlobType.EXTERNAL; +} else if ((head & 0xf8) == 0xf0) { +// 0xxx: external value, long blob ID +int length = UTF_8.encode(requireNonNull(readBlobId(segment, blobId.getRecordNumber(.limit(); size += (2 + length); blobType = BlobType.EXTERNAL; } else { Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java?rev=1826132&r1=1826131&r2=1826132&view=diff == --- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java (original) +++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentParserTest.java Wed Mar 7 16:18:23 2018 @@ -64,7 +64,6 @@ import org.apache.jackrabbit.oak.segment import org.apache.jackrabbit.oak.segment.memory.MemoryStore; import org.apache.jackrabbit.oak.spi.blob.BlobStore; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; -import org.junit.Assume; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -374,8 +373,6 @@ public class SegmentParserTest { @Test public void longBlob() throws IOException { SegmentBlob blob = new SegmentBlob(store.getBlobStore(), writer.writeBlob(createRandomBlob(MEDIUM_LIMIT))); -// FIXME OAK-7317: SegmentParser#parseBlob does not long ids of external blobs -Assume.assumeTrue(blob.getBlobId() == null || "shortId".equals(blob.getBlobId())); ValueInfo valueInfo = new TestParser(store.getReader(), "longBlob") { @Override protected void onBlob(RecordId parentId, RecordId blobId) {