You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by nf...@apache.org on 2025/01/15 14:38:03 UTC
(jackrabbit-oak) branch trunk updated: OAK-11394 - Avoid creation of iterator when creating a CompositeEditor. (#1987)
This is an automated email from the ASF dual-hosted git repository.
nfsantos 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 80171773f4 OAK-11394 - Avoid creation of iterator when creating a CompositeEditor. (#1987)
80171773f4 is described below
commit 80171773f4ae02b9245ffb3cbf8b80c91be3e205
Author: Nuno Santos <ns...@adobe.com>
AuthorDate: Wed Jan 15 15:37:58 2025 +0100
OAK-11394 - Avoid creation of iterator when creating a CompositeEditor. (#1987)
---
.../jackrabbit/oak/plugins/index/IndexUpdate.java | 20 ++++++++--------
.../jackrabbit/oak/spi/commit/CompositeEditor.java | 27 +++++++++++-----------
2 files changed, 25 insertions(+), 22 deletions(-)
diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java
index d42200570e..0fbbe57c84 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java
@@ -31,9 +31,6 @@ import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.TYPE_DISABL
import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.TYPE_PROPERTY_NAME;
import static org.apache.jackrabbit.oak.plugins.index.IndexUtils.getAsyncLaneName;
import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.MISSING_NODE;
-import static org.apache.jackrabbit.oak.spi.commit.CompositeEditor.compose;
-import static org.apache.jackrabbit.oak.spi.commit.EditorDiff.process;
-import static org.apache.jackrabbit.oak.spi.commit.VisibleEditor.wrap;
import java.util.ArrayList;
import java.util.HashMap;
@@ -57,7 +54,10 @@ import org.apache.jackrabbit.oak.plugins.index.progress.NodeCountEstimator;
import org.apache.jackrabbit.oak.plugins.index.progress.TraversalRateEstimator;
import org.apache.jackrabbit.oak.plugins.index.upgrade.IndexDisabler;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
+import org.apache.jackrabbit.oak.spi.commit.CompositeEditor;
import org.apache.jackrabbit.oak.spi.commit.Editor;
+import org.apache.jackrabbit.oak.spi.commit.EditorDiff;
+import org.apache.jackrabbit.oak.spi.commit.VisibleEditor;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
@@ -134,7 +134,7 @@ public class IndexUpdate implements Editor, PathSource {
/**
* Editors for indexes that need to be re-indexed.
*/
- private final Map<String, Editor> reindex = new HashMap<String, Editor>();
+ private final Map<String, Editor> reindex = new HashMap<>();
public IndexUpdate(
IndexEditorProvider provider, String async,
@@ -182,8 +182,10 @@ public class IndexUpdate implements Editor, PathSource {
}
// no-op when reindex is empty
- CommitFailedException exception = process(
- wrap(wrapProgress(compose(reindex.values()))), MISSING_NODE, after);
+ CommitFailedException exception = EditorDiff.process(
+ VisibleEditor.wrap(wrapProgress(CompositeEditor.compose(reindex.values()))),
+ MISSING_NODE,
+ after);
rootState.progressReporter.reindexingTraversalEnd();
if (exception != null) {
throw exception;
@@ -503,7 +505,7 @@ public class IndexUpdate implements Editor, PathSource {
children.add(child);
}
}
- return compose(children);
+ return CompositeEditor.compose(children);
}
@Override @NotNull
@@ -518,7 +520,7 @@ public class IndexUpdate implements Editor, PathSource {
children.add(child);
}
}
- return compose(children);
+ return CompositeEditor.compose(children);
}
@Override @Nullable
@@ -531,7 +533,7 @@ public class IndexUpdate implements Editor, PathSource {
children.add(child);
}
}
- return compose(children);
+ return CompositeEditor.compose(children);
}
public void commitProgress(IndexProgress indexProgress) {
diff --git a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/commit/CompositeEditor.java b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/commit/CompositeEditor.java
index d351fe63df..b4b5264584 100644
--- a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/commit/CompositeEditor.java
+++ b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/commit/CompositeEditor.java
@@ -16,7 +16,6 @@
*/
package org.apache.jackrabbit.oak.spi.commit;
-import static java.util.Arrays.asList;
import static java.util.Objects.requireNonNull;
import org.apache.jackrabbit.oak.api.CommitFailedException;
@@ -34,27 +33,31 @@ import java.util.List;
*/
public class CompositeEditor implements Editor {
- @Nullable
public static Editor compose(@NotNull Collection<? extends Editor> editors) {
+ return compose(new ArrayList<>(editors));
+ }
+
+ @Nullable
+ public static Editor compose(@NotNull List<? extends Editor> editors) {
requireNonNull(editors);
switch (editors.size()) {
- case 0:
- return null;
- case 1:
- return editors.iterator().next();
- default:
- return new CompositeEditor(editors);
+ case 0:
+ return null;
+ case 1:
+ return editors.get(0);
+ default:
+ return new CompositeEditor(editors);
}
}
- private final Collection<? extends Editor> editors;
+ private final List<? extends Editor> editors;
- public CompositeEditor(Collection<? extends Editor> editors) {
+ public CompositeEditor(List<? extends Editor> editors) {
this.editors = editors;
}
public CompositeEditor(Editor... editors) {
- this(asList(editors));
+ this(List.of(editors));
}
@Override
@@ -73,7 +76,6 @@ public class CompositeEditor implements Editor {
}
}
-
@Override
public void propertyAdded(PropertyState after)
throws CommitFailedException {
@@ -137,5 +139,4 @@ public class CompositeEditor implements Editor {
}
return compose(list);
}
-
}