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,

Reply via email to