This is an automated email from the ASF dual-hosted git repository.
daim 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 92a32b1847 OAK-11666 : removed usage of Iterators.concat with
oak-commons util (#2241)
92a32b1847 is described below
commit 92a32b18473fb7776e10adf78c2c45d2d380e267
Author: Rishabh Kumar <[email protected]>
AuthorDate: Wed Apr 23 09:38:13 2025 +0530
OAK-11666 : removed usage of Iterators.concat with oak-commons util (#2241)
Co-authored-by: Rishabh Kumar <[email protected]>
---
.../security/authentication/external/impl/DefaultSyncHandler.java | 3 ++-
.../external/impl/principal/AutoMembershipPrincipals.java | 3 ++-
.../external/impl/principal/AutoMembershipProvider.java | 3 ++-
.../jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java | 3 ++-
.../apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java | 3 ++-
.../jackrabbit/oak/plugins/index/aggregate/AggregationCursor.java | 3 ++-
.../main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java | 2 +-
.../authorization/composite/CompositeAccessControlManager.java | 5 +++--
.../security/authorization/permission/CompiledPermissionImpl.java | 6 +++---
.../apache/jackrabbit/oak/security/principal/EveryoneFilter.java | 3 ++-
.../apache/jackrabbit/oak/security/user/AuthorizableIterator.java | 3 ++-
.../jackrabbit/oak/security/user/DynamicMembershipTracker.java | 5 +++--
.../org/apache/jackrabbit/oak/security/user/MembershipProvider.java | 2 +-
.../org/apache/jackrabbit/oak/security/user/MembershipWriter.java | 5 +++--
.../jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java | 3 ++-
.../oak/index/indexer/document/flatfile/FlatFileStoreIterator.java | 4 ++--
.../oak/spi/security/principal/CompositePrincipalProvider.java | 2 +-
.../apache/jackrabbit/oak/plugins/document/DocumentNodeState.java | 3 ++-
.../jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java | 5 +++--
19 files changed, 40 insertions(+), 26 deletions(-)
diff --git
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DefaultSyncHandler.java
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DefaultSyncHandler.java
index 9d24a042a0..e47aee7a25 100644
---
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DefaultSyncHandler.java
+++
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DefaultSyncHandler.java
@@ -17,6 +17,7 @@
package org.apache.jackrabbit.oak.spi.security.authentication.external.impl;
import org.apache.jackrabbit.guava.common.collect.Iterators;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Deactivate;
@@ -226,7 +227,7 @@ public class DefaultSyncHandler implements SyncHandler,
AutoMembershipAware {
@Override
public Iterator<Authorizable> getAutoMembers(@NotNull UserManager
userManager, @NotNull Group group) {
- return
Iterators.concat(getServices().stream().map(autoMembershipConfig ->
autoMembershipConfig.getAutoMembers(userManager, group)).iterator());
+ return
IteratorUtils.chainedIterator(getServices().stream().map(autoMembershipConfig
-> autoMembershipConfig.getAutoMembers(userManager, group)).iterator());
}
}
}
diff --git
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipals.java
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipals.java
index 28be75b0bc..fec44266bf 100644
---
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipals.java
+++
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipals.java
@@ -20,6 +20,7 @@ import org.apache.jackrabbit.api.security.user.Authorizable;
import org.apache.jackrabbit.api.security.user.Group;
import org.apache.jackrabbit.api.security.user.UserManager;
import org.apache.jackrabbit.guava.common.collect.Iterators;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.commons.collections.SetUtils;
import
org.apache.jackrabbit.oak.spi.security.authentication.external.basic.AutoMembershipConfig;
import org.apache.jackrabbit.oak.spi.security.principal.GroupPrincipals;
@@ -96,7 +97,7 @@ final class AutoMembershipPrincipals {
Iterator<Authorizable> getMembersFromAutoMembershipConfig(@NotNull Group
group) {
List<Iterator<? extends Authorizable>> results = new ArrayList<>();
autoMembershipConfigMap.values().forEach(autoMembershipConfig ->
results.add(autoMembershipConfig.getAutoMembers(userManager, group)));
- return Iterators.concat(results.iterator());
+ return IteratorUtils.chainedIterator(results.iterator());
}
/**
diff --git
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipProvider.java
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipProvider.java
index dd7bacbcdb..2305d45ab4 100644
---
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipProvider.java
+++
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipProvider.java
@@ -26,6 +26,7 @@ import org.apache.jackrabbit.oak.api.QueryEngine;
import org.apache.jackrabbit.oak.api.Result;
import org.apache.jackrabbit.oak.api.ResultRow;
import org.apache.jackrabbit.oak.api.Root;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.plugins.memory.PropertyValues;
import
org.apache.jackrabbit.oak.spi.security.authentication.external.basic.AutoMembershipConfig;
@@ -95,7 +96,7 @@ class AutoMembershipProvider implements
DynamicMembershipProvider {
searchGlobalMembers(group, results);
// add members from conditional automembership mapping
results.add(autoMembershipPrincipals.getMembersFromAutoMembershipConfig(group));
- return Iterators.concat(results.iterator());
+ return IteratorUtils.chainedIterator(results.iterator());
}
@Override
diff --git
a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java
b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java
index 8e1fc4767c..9abbe60171 100644
---
a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java
+++
b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java
@@ -39,6 +39,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.commons.time.Stopwatch;
import org.apache.jackrabbit.core.data.AbstractDataStore;
import org.apache.jackrabbit.core.data.DataIdentifier;
@@ -273,7 +274,7 @@ public abstract class AbstractSharedCachingDataStore
extends AbstractDataStore
*/
@Override
public Iterator<DataIdentifier> getAllIdentifiers() throws
DataStoreException {
- return
Iterators.concat(Iterators.transform(cache.getStagingCache().getAllIdentifiers(),
+ return
IteratorUtils.chainedIterator(Iterators.transform(cache.getStagingCache().getAllIdentifiers(),
id -> new DataIdentifier(id)), backend.getAllIdentifiers());
}
diff --git
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java
index dab06589ca..858c51c03b 100644
---
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java
+++
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java
@@ -39,6 +39,7 @@ import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.commons.QueryUtils;
import org.apache.jackrabbit.oak.commons.UUIDUtils;
import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.plugins.memory.PropertyValues;
import org.apache.jackrabbit.oak.plugins.memory.StringPropertyState;
@@ -237,7 +238,7 @@ public class IdentifierManager {
return new Iterable<String>() {
@Override
public Iterator<String> iterator() {
- return Iterators.concat(transform(result.getRows().iterator(),
new RowToPaths()::apply));
+ return
IteratorUtils.chainedIterator(transform(result.getRows().iterator(), new
RowToPaths()::apply));
}
class RowToPaths implements Function<ResultRow, Iterator<String>> {
diff --git
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/aggregate/AggregationCursor.java
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/aggregate/AggregationCursor.java
index 186b4f9a69..2900f77851 100644
---
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/aggregate/AggregationCursor.java
+++
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/aggregate/AggregationCursor.java
@@ -23,6 +23,7 @@ import java.util.Set;
import org.apache.jackrabbit.oak.api.PropertyValue;
import org.apache.jackrabbit.oak.api.Result.SizePrecision;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.plugins.index.cursor.AbstractCursor;
import org.apache.jackrabbit.oak.spi.query.Cursor;
import org.apache.jackrabbit.oak.spi.query.IndexRow;
@@ -89,7 +90,7 @@ class AggregationCursor extends AbstractCursor {
currentRow = cursor.next();
if (!currentRow.isVirtualRow()) {
String path = currentRow.getPath();
- aggregates = Iterators.filter(Iterators.concat(
+ aggregates = Iterators.filter(IteratorUtils.chainedIterator(
Iterators.singletonIterator(path),
aggregator.getParents(rootState, path)),
x -> !seenPaths.contains(x));
diff --git
a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java
b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java
index 2ae273356f..4647cbdd5a 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/UnionQueryImpl.java
@@ -325,7 +325,7 @@ public class UnionQueryImpl implements Query {
rightIter = ((MeasuringIterator) rightRows).getDelegate();
}
if (orderBy == null) {
- it = Iterators.concat(leftIter, rightIter);
+ it = IteratorUtils.chainedIterator(leftIter, rightIter);
} else {
// This would suggest either the sub queries are sorted by index
or explicitly by QueryImpl (in case of traversing index)
// So use mergeSorted here.
diff --git
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAccessControlManager.java
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAccessControlManager.java
index 85d6c5b449..9dc11b000d 100644
---
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAccessControlManager.java
+++
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAccessControlManager.java
@@ -38,6 +38,7 @@ import
org.apache.jackrabbit.api.security.JackrabbitAccessControlManager;
import org.apache.jackrabbit.api.security.JackrabbitAccessControlPolicy;
import
org.apache.jackrabbit.commons.iterator.AccessControlPolicyIteratorAdapter;
import org.apache.jackrabbit.oak.api.Root;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
import
org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager;
@@ -109,7 +110,7 @@ class CompositeAccessControlManager extends
AbstractAccessControlManager {
l.add(acMgr.getApplicablePolicies(absPath));
}
}
- return new
AccessControlPolicyIteratorAdapter(Iterators.concat(l.toArray(new
AccessControlPolicyIterator[0])));
+ return new
AccessControlPolicyIteratorAdapter(IteratorUtils.chainedIterator(l.toArray(new
AccessControlPolicyIterator[0])));
}
@Override
@@ -190,6 +191,6 @@ class CompositeAccessControlManager extends
AbstractAccessControlManager {
}
}
}
- return Iterators.concat(iterators.build().toArray(new Iterator[0]));
+ return IteratorUtils.chainedIterator(iterators.build().toArray(new
Iterator[0]));
}
}
diff --git
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java
index a9e7483995..eab7f64338 100644
---
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java
+++
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java
@@ -32,6 +32,7 @@ import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Root;
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.plugins.tree.TreeType;
import org.apache.jackrabbit.oak.plugins.tree.TreeTypeProvider;
@@ -54,7 +55,6 @@ import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.apache.jackrabbit.guava.common.collect.Iterators.concat;
import static
org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission.ALL;
import static
org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission.EMPTY;
@@ -441,7 +441,7 @@ final class CompiledPermissionImpl implements
CompiledPermissions, PermissionCon
if (groupStore != null) {
groupEntries = groupStore.getEntryIterator(predicate);
}
- return concat(userEntries, groupEntries);
+ return IteratorUtils.chainedIterator(userEntries, groupEntries);
}
@Nullable
@@ -605,7 +605,7 @@ final class CompiledPermissionImpl implements
CompiledPermissions, PermissionCon
if (groupStore != null) {
groupIt = new LazyIterator(this, false, predicate);
}
- return concat(userIt, groupIt);
+ return IteratorUtils.chainedIterator(userIt, groupIt);
}
@NotNull
diff --git
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/EveryoneFilter.java
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/EveryoneFilter.java
index 580c21e44a..e2e5c0bdfe 100644
---
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/EveryoneFilter.java
+++
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/EveryoneFilter.java
@@ -18,6 +18,7 @@ package org.apache.jackrabbit.oak.security.principal;
import org.apache.jackrabbit.guava.common.collect.Iterators;
import org.apache.jackrabbit.api.security.principal.PrincipalManager;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -47,7 +48,7 @@ public final class EveryoneFilter {
public static Iterator<Principal> filter(@NotNull Iterator<Principal>
resultPrincipals, @Nullable String nameHint, int searchType, long offset, long
limit) {
boolean noRange = offset == 0 && limit == Long.MAX_VALUE;
if (noRange && matchesEveryone(nameHint, searchType)) {
- Iterator<Principal> principals =
Iterators.concat(resultPrincipals,
Iterators.singletonIterator(EveryonePrincipal.getInstance()));
+ Iterator<Principal> principals =
IteratorUtils.chainedIterator(resultPrincipals,
Iterators.singletonIterator(EveryonePrincipal.getInstance()));
return Iterators.filter(principals, new EveryonePredicate()::test);
} else {
return resultPrincipals;
diff --git
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableIterator.java
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableIterator.java
index 9179bcfd7d..66b742f32a 100644
---
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableIterator.java
+++
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableIterator.java
@@ -20,6 +20,7 @@ import org.apache.jackrabbit.guava.common.collect.Iterators;
import org.apache.jackrabbit.api.security.user.Authorizable;
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.commons.LongUtils;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.spi.security.user.AuthorizableType;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
@@ -74,7 +75,7 @@ final class AuthorizableIterator implements
Iterator<Authorizable> {
size = LongUtils.safeAdd(size, l);
}
}
- return new AuthorizableIterator(Iterators.concat(it1, it2), size,
filterDuplicates);
+ return new AuthorizableIterator(IteratorUtils.chainedIterator(it1,
it2), size, filterDuplicates);
}
private AuthorizableIterator(Iterator<? extends Authorizable>
authorizables, long size, boolean filterDuplicates) {
diff --git
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/DynamicMembershipTracker.java
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/DynamicMembershipTracker.java
index fb3473f37e..ca34a96df2 100644
---
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/DynamicMembershipTracker.java
+++
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/DynamicMembershipTracker.java
@@ -21,6 +21,7 @@ import org.apache.jackrabbit.api.security.user.Authorizable;
import org.apache.jackrabbit.api.security.user.Group;
import org.apache.jackrabbit.api.security.user.UserManager;
import org.apache.jackrabbit.oak.api.Root;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.spi.security.user.DynamicMembershipProvider;
import org.apache.jackrabbit.oak.spi.security.user.DynamicMembershipService;
@@ -101,7 +102,7 @@ public class DynamicMembershipTracker extends
AbstractServiceTracker<DynamicMemb
for (int i = 0; i < size; i++) {
members[i] = providers.get(i).getMembers(group,
includeInherited);
}
- return Iterators.concat(members);
+ return IteratorUtils.chainedIterator(members);
}
@Override
@@ -121,7 +122,7 @@ public class DynamicMembershipTracker extends
AbstractServiceTracker<DynamicMemb
for (int i = 0; i < size; i++) {
groups[i] = providers.get(i).getMembership(authorizable,
includeInherited);
}
- return Iterators.concat(groups);
+ return IteratorUtils.chainedIterator(groups);
}
}
}
diff --git
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java
index 3159df00d0..aa9c856162 100644
---
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java
+++
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java
@@ -354,7 +354,7 @@ class MembershipProvider extends AuthorizableBaseProvider {
private Iterator<String> propertyValues;
private MemberReferenceIterator(@NotNull Tree groupTree) {
- this.trees = Iterators.concat(
+ this.trees = IteratorUtils.chainedIterator(
Iterators.singletonIterator(groupTree),
groupTree.getChild(REP_MEMBERS_LIST).getChildren().iterator()
);
diff --git
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java
index 107f824454..5d33e2bc3f 100644
---
a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java
+++
b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java
@@ -26,6 +26,7 @@ import org.apache.jackrabbit.JcrConstants;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
import org.apache.jackrabbit.oak.plugins.memory.PropertyBuilder;
import org.jetbrains.annotations.NotNull;
@@ -74,7 +75,7 @@ public class MembershipWriter {
Set<String> addMembers(@NotNull Tree groupTree, @NotNull Map<String,
String> memberIds) {
// check all possible rep:members properties for the new member and
also find the one with the least values
Tree membersList = groupTree.getChild(UserConstants.REP_MEMBERS_LIST);
- Iterator<Tree> trees = Iterators.concat(
+ Iterator<Tree> trees = IteratorUtils.chainedIterator(
Iterators.singletonIterator(groupTree),
membersList.getChildren().iterator()
);
@@ -203,7 +204,7 @@ public class MembershipWriter {
@NotNull
Set<String> removeMembers(@NotNull Tree groupTree, @NotNull Map<String,
String> memberIds) {
Tree membersList = groupTree.getChild(UserConstants.REP_MEMBERS_LIST);
- Iterator<Tree> trees = Iterators.concat(
+ Iterator<Tree> trees = IteratorUtils.chainedIterator(
Iterators.singletonIterator(groupTree),
membersList.getChildren().iterator()
);
diff --git
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java
index a27890a6b1..be0bcb19fe 100644
---
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java
+++
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java
@@ -45,6 +45,7 @@ import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.commons.PerfLogger;
import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.commons.collections.StreamUtils;
import org.apache.jackrabbit.oak.commons.conditions.Validate;
import org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier;
@@ -1618,7 +1619,7 @@ public class LucenePropertyIndex extends FulltextIndex {
.transform(path -> new FulltextResultRow(path, 0, null, null,
null));
//Property index itr should come first
- return Iterators.concat(propIndex.iterator(), itr);
+ return IteratorUtils.chainedIterator(propIndex.iterator(), itr);
}
class DelayedLuceneFacetProvider implements FacetProvider {
diff --git
a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java
b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java
index f73afb0a66..96eb9c4f62 100644
---
a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java
+++
b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java
@@ -21,6 +21,7 @@ package
org.apache.jackrabbit.oak.index.indexer.document.flatfile;
import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
import org.apache.jackrabbit.oak.commons.IOUtils;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.index.indexer.document.NodeStateEntry;
import
org.apache.jackrabbit.oak.index.indexer.document.flatfile.linkedList.FlatFileBufferLinkedList;
import
org.apache.jackrabbit.oak.index.indexer.document.flatfile.linkedList.NodeStateEntryList;
@@ -36,7 +37,6 @@ import java.io.Closeable;
import java.util.Iterator;
import java.util.Set;
-import static org.apache.jackrabbit.guava.common.collect.Iterators.concat;
import static
org.apache.jackrabbit.guava.common.collect.Iterators.singletonIterator;
class FlatFileStoreIterator extends AbstractIterator<NodeStateEntry>
implements Iterator<NodeStateEntry>, Closeable {
@@ -149,7 +149,7 @@ class FlatFileStoreIterator extends
AbstractIterator<NodeStateEntry> implements
}
private Iterable<NodeStateEntry> getEntries() {
- return () -> concat(singletonIterator(current), queueIterator());
+ return () -> IteratorUtils.chainedIterator(singletonIterator(current),
queueIterator());
}
private Iterator<NodeStateEntry> queueIterator() {
diff --git
a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProvider.java
b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProvider.java
index 11c50a562c..8bed2926ec 100644
---
a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProvider.java
+++
b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/CompositePrincipalProvider.java
@@ -119,7 +119,7 @@ public class CompositePrincipalProvider implements
PrincipalProvider {
iterators[i++] = provider.findPrincipals(nameHint, searchType);
}
}
- return Iterators.concat(iterators);
+ return IteratorUtils.chainedIterator(iterators);
}
@NotNull
diff --git
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java
index ea24d3abcd..2bbefdef6a 100644
---
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java
+++
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java
@@ -28,6 +28,7 @@ import
org.apache.jackrabbit.guava.common.collect.TreeTraverser;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.cache.CacheValue;
import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.commons.conditions.Validate;
import org.apache.jackrabbit.oak.commons.json.JsopBuilder;
import org.apache.jackrabbit.oak.commons.json.JsopReader;
@@ -364,7 +365,7 @@ public class DocumentNodeState extends
AbstractDocumentNodeState implements Cach
if (bundlingContext.hasOnlyBundledChildren()){
return getBundledChildren();
}
- return Iterators.concat(getBundledChildren(), new
ChildNodeEntryIterator());
+ return IteratorUtils.chainedIterator(getBundledChildren(),
new ChildNodeEntryIterator());
}
return new ChildNodeEntryIterator();
diff --git
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
index 2bb2c6b0e0..4314fa9932 100644
---
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
+++
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
@@ -61,6 +61,7 @@ import
org.apache.jackrabbit.guava.common.util.concurrent.UncheckedExecutionExce
import org.apache.jackrabbit.oak.cache.CacheStats;
import org.apache.jackrabbit.oak.cache.CacheValue;
import org.apache.jackrabbit.oak.commons.collections.IterableUtils;
+import org.apache.jackrabbit.oak.commons.collections.IteratorUtils;
import org.apache.jackrabbit.oak.commons.collections.ListUtils;
import org.apache.jackrabbit.oak.commons.collections.MapUtils;
import org.apache.jackrabbit.oak.commons.collections.SetUtils;
@@ -1266,7 +1267,7 @@ public class MongoDocumentStore implements DocumentStore {
}
// if there are some changes left, we'll apply them one after
another i.e. failed ones
- final Iterator<UpdateOp> it =
Iterators.concat(operationsToCover.values().iterator(), duplicates.iterator());
+ final Iterator<UpdateOp> it =
IteratorUtils.chainedIterator(operationsToCover.values().iterator(),
duplicates.iterator());
while (it.hasNext()) {
UpdateOp op = it.next();
it.remove();
@@ -1364,7 +1365,7 @@ public class MongoDocumentStore implements DocumentStore {
}
// if there are some changes left, we'll apply them one after
another
- Iterator<UpdateOp> it =
Iterators.concat(operationsToCover.values().iterator(), duplicates.iterator());
+ Iterator<UpdateOp> it =
IteratorUtils.chainedIterator(operationsToCover.values().iterator(),
duplicates.iterator());
while (it.hasNext()) {
UpdateOp op = it.next();
it.remove();