This is an automated email from the ASF dual-hosted git repository. daim pushed a commit to branch OAK-11557 in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit 3cca13aee34e41a0ff8dfe1bd42d6ae48a32002c Author: Rishabh Kumar <d...@adobe.com> AuthorDate: Fri Mar 7 12:42:32 2025 +0530 OAK-11556 : removed usage of Guava's Iterables.getOnlyElements with Streams --- .../java/org/apache/jackrabbit/oak/plugins/index/IndexUtils.java | 4 +++- .../jackrabbit/oak/plugins/index/lucene/LucenePropertyIndexTest.java | 5 ++++- .../oak/plugins/index/search/spi/query/FulltextIndexPlanner.java | 2 +- .../org/apache/jackrabbit/oak/plugins/index/OrderByCommonTest.java | 5 ++++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUtils.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUtils.java index 70f4ca8631..6277a25641 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUtils.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUtils.java @@ -250,7 +250,9 @@ public final class IndexUtils { asyncNames.remove(IndexConstants.INDEXING_MODE_SYNC); checkArgument(!asyncNames.isEmpty(), "No valid async name found for " + "index [%s], definition %s", indexPath, idxState); - return Iterables.getOnlyElement(asyncNames); + checkArgument(asyncNames.size() == 1, "Multiple async names found for " + + "index [%s], definition %s", indexPath, idxState); + return asyncNames.stream().findAny().orElseThrow(); } return null; } diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndexTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndexTest.java index dd022011f7..e186302d88 100644 --- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndexTest.java +++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndexTest.java @@ -60,6 +60,7 @@ import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.commons.collections.ListUtils; +import org.apache.jackrabbit.oak.commons.collections.StreamUtils; import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; import org.apache.jackrabbit.oak.plugins.index.AsyncIndexInfoService; import org.apache.jackrabbit.oak.plugins.index.AsyncIndexInfoServiceImpl; @@ -100,6 +101,7 @@ import org.apache.lucene.store.FSDirectory; import org.apache.lucene.store.FilterDirectory; import org.jetbrains.annotations.NotNull; import org.junit.After; +import org.junit.Assert; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; @@ -3123,7 +3125,8 @@ public class LucenePropertyIndexTest extends AbstractQueryTest { private String explainXpath(String query) throws ParseException { String explain = "explain " + query; Result result = executeQuery(explain, "xpath", NO_BINDINGS); - ResultRow row = Iterables.getOnlyElement(result.getRows()); + Assert.assertEquals(1, StreamUtils.toStream(result.getRows()).count()); + ResultRow row = StreamUtils.toStream(result.getRows()).findAny().orElseThrow(); return row.getValue("plan").getValue(Type.STRING); } diff --git a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/query/FulltextIndexPlanner.java b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/query/FulltextIndexPlanner.java index 65e62e7e93..173127a6ee 100644 --- a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/query/FulltextIndexPlanner.java +++ b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/query/FulltextIndexPlanner.java @@ -591,7 +591,7 @@ public class FulltextIndexPlanner { log.debug("Following relative property paths are not index: {}", relPaths); return false; } - result.setParentPath(Iterables.getOnlyElement(relPaths, "")); + result.setParentPath(relPaths.stream().findAny().orElse("")); //Such non indexed path can possibly be evaluated via any rule on nt:base //which can possibly index everything diff --git a/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/OrderByCommonTest.java b/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/OrderByCommonTest.java index 4322ca998c..b15291c77a 100644 --- a/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/OrderByCommonTest.java +++ b/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/OrderByCommonTest.java @@ -23,9 +23,11 @@ import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.commons.collections.ListUtils; +import org.apache.jackrabbit.oak.commons.collections.StreamUtils; import org.apache.jackrabbit.oak.plugins.index.search.FulltextIndexConstants; import org.apache.jackrabbit.oak.plugins.index.search.util.IndexDefinitionBuilder; import org.apache.jackrabbit.oak.query.AbstractQueryTest; +import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; @@ -512,7 +514,8 @@ public abstract class OrderByCommonTest extends AbstractQueryTest { } catch (ParseException e) { throw new RuntimeException(e); } - ResultRow row = Iterables.getOnlyElement(result.getRows()); + Assert.assertEquals(1, StreamUtils.toStream(result.getRows()).count()); + ResultRow row = StreamUtils.toStream(result.getRows()).findAny().orElseThrow(); return row.getValue("plan").getValue(Type.STRING); }