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 <[email protected]>
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,