This is an automated email from the ASF dual-hosted git repository. reschke pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
The following commit(s) were added to refs/heads/trunk by this push: new e3b4f9c3f3 Revert "OAK-11742 : removed usage of Guava's ordering with JDK comparator (#2314)" e3b4f9c3f3 is described below commit e3b4f9c3f3bf075156801870c721fc550c2940a3 Author: Julian Reschke <resc...@apache.org> AuthorDate: Wed Jun 4 19:13:48 2025 +0100 Revert "OAK-11742 : removed usage of Guava's ordering with JDK comparator (#2314)" This reverts commit ee6c57ef5887ca2e62dd3ced00b5603c5ae58cf3. --- .../oak/plugins/blob/datastore/SharedDataStoreUtils.java | 15 ++++++++++++--- .../java/org/apache/jackrabbit/oak/query/QueryImpl.java | 13 +++++++++---- .../java/org/apache/jackrabbit/oak/segment/MapEntry.java | 4 ++-- .../jackrabbit/oak/plugins/document/NodeDocument.java | 3 ++- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils.java index 7a7b560c8e..69198916f6 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils.java @@ -16,18 +16,20 @@ */ package org.apache.jackrabbit.oak.plugins.blob.datastore; -import java.util.Collections; -import java.util.Comparator; import java.util.List; import java.util.Set; +import java.util.function.Function; import java.util.stream.Collectors; import org.apache.jackrabbit.guava.common.base.Splitter; import org.apache.jackrabbit.guava.common.collect.FluentIterable; +import org.apache.jackrabbit.guava.common.collect.Ordering; import org.apache.jackrabbit.core.data.DataRecord; import org.apache.jackrabbit.oak.commons.collections.SetUtils; import org.apache.jackrabbit.oak.plugins.blob.SharedDataStore; import org.apache.jackrabbit.oak.spi.blob.BlobStore; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * Utility class for {@link SharedDataStore}. @@ -51,7 +53,14 @@ public class SharedDataStoreUtils { * @return the earliest record */ public static DataRecord getEarliestRecord(List<DataRecord> recs) { - return Collections.min(recs, Comparator.comparing(DataRecord::getLastModified, Comparator.naturalOrder())); + return Ordering.natural().onResultOf( + new Function<DataRecord, Long>() { + @Override + @Nullable + public Long apply(@NotNull DataRecord input) { + return input.getLastModified(); + } + }::apply).min(recs); } /** diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java index 397e1c201b..64e3a2bd1c 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java @@ -29,7 +29,6 @@ import java.util.Locale; import java.util.Map; import java.util.Optional; import java.util.Set; -import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; import org.apache.jackrabbit.oak.api.PropertyValue; @@ -106,6 +105,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.jackrabbit.guava.common.collect.AbstractIterator; +import org.apache.jackrabbit.guava.common.collect.Ordering; /** * Represents a parsed query. @@ -124,7 +124,12 @@ public class QueryImpl implements Query { private boolean potentiallySlowTraversalQueryLogged; - private static final Comparator<QueryIndex> MINIMAL_COST_ORDERING = Comparator.comparingDouble(QueryIndex::getMinimumCost); + private static final Ordering<QueryIndex> MINIMAL_COST_ORDERING = new Ordering<QueryIndex>() { + @Override + public int compare(QueryIndex left, QueryIndex right) { + return Double.compare(left.getMinimumCost(), right.getMinimumCost()); + } + }; SourceImpl source; private String statement; @@ -1087,8 +1092,8 @@ public class QueryImpl implements Query { // Sort the indexes according to their minimum cost to be able to skip the remaining indexes if the cost of the // current index is below the minimum cost of the next index. - List<? extends QueryIndex> queryIndexes = indexProvider.getQueryIndexes(rootState).stream() - .sorted(MINIMAL_COST_ORDERING).collect(Collectors.toList()); + List<? extends QueryIndex> queryIndexes = MINIMAL_COST_ORDERING + .sortedCopy(indexProvider.getQueryIndexes(rootState)); List<OrderEntry> sortOrder = getSortOrder(filter); for (int i = 0; i < queryIndexes.size(); i++) { QueryIndex index = queryIndexes.get(i); diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MapEntry.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MapEntry.java index 033d8b2108..f6cd6fc144 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MapEntry.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MapEntry.java @@ -21,10 +21,10 @@ package org.apache.jackrabbit.oak.segment; import static java.util.Objects.requireNonNull; import static org.apache.jackrabbit.oak.segment.MapRecord.HASH_MASK; -import java.util.Comparator; import java.util.Map; import org.apache.jackrabbit.guava.common.collect.ComparisonChain; +import org.apache.jackrabbit.guava.common.collect.Ordering; import org.apache.jackrabbit.oak.commons.conditions.Validate; import org.apache.jackrabbit.oak.spi.state.AbstractChildNodeEntry; import org.jetbrains.annotations.NotNull; @@ -152,7 +152,7 @@ class MapEntry extends AbstractChildNodeEntry return ComparisonChain.start() .compare(getHash() & HASH_MASK, that.getHash() & HASH_MASK) .compare(name, that.name) - .compare(value, that.value, Comparator.nullsLast(Comparator.naturalOrder())) + .compare(value, that.value, Ordering.natural().nullsLast()) .result(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java index bee38bbc58..967ae774b2 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java @@ -51,6 +51,7 @@ import java.util.function.Predicate; import org.apache.jackrabbit.guava.common.cache.Cache; import org.apache.jackrabbit.guava.common.collect.AbstractIterator; +import org.apache.jackrabbit.guava.common.collect.Ordering; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.commons.collections.DequeUtils; @@ -2550,7 +2551,7 @@ public final class NodeDocument extends Document { static final Comparator<Entry<Revision, String>> REVERSE = Collections.reverseOrder(INSTANCE); - private static final Comparator<String> STRING_ORDERING = Comparator.nullsFirst(Comparator.naturalOrder()); + private static final Ordering<String> STRING_ORDERING = Ordering.natural().nullsFirst(); @Override public int compare(Entry<Revision, String> o1,