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 38d503ff17 OAK-11778 - Cleanups, reduce compilation warnings (#2355) 38d503ff17 is described below commit 38d503ff172dbd810fb8ca3563e06380fe2ebfec Author: Nuno Santos <nsan...@adobe.com> AuthorDate: Thu Jul 3 08:08:42 2025 +0200 OAK-11778 - Cleanups, reduce compilation warnings (#2355) --- .../org/apache/jackrabbit/oak/query/QueryImpl.java | 32 +++--- .../apache/jackrabbit/oak/query/QueryOptions.java | 2 +- .../apache/jackrabbit/oak/query/ResultImpl.java | 14 +-- .../apache/jackrabbit/oak/query/ResultRowImpl.java | 52 +++++----- .../jackrabbit/oak/jcr/query/PrefetchIterator.java | 6 +- .../apache/jackrabbit/oak/jcr/query/QueryImpl.java | 9 +- .../jackrabbit/oak/jcr/query/QueryManagerImpl.java | 10 +- .../jackrabbit/oak/jcr/query/QueryResultImpl.java | 114 +++++++++++---------- .../apache/jackrabbit/oak/jcr/query/RowImpl.java | 4 +- .../index/lucene/LuceneIndexEditor2Test.java | 42 +++----- .../lucene/LuceneIndexEditorProviderTest.java | 89 ++++++++-------- .../index/lucene/LuceneIndexEditorTest.java | 6 +- .../index/lucene/LuceneIndexPlannerCommonTest.java | 2 +- .../lucene/LuceneIndexProviderServiceTest.java | 5 +- .../index/lucene/LuceneIndexQueryCommonTest.java | 2 +- .../oak/plugins/index/lucene/LuceneIndexTest.java | 2 +- .../index/lucene/LucenePropertyIndexTest.java | 44 ++++---- .../index/search/spi/query/FulltextIndex.java | 4 +- 18 files changed, 207 insertions(+), 232 deletions(-) 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 35ada0ad68..776629dd85 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 @@ -128,17 +128,17 @@ public class QueryImpl implements Query { SourceImpl source; private String statement; - final HashMap<String, PropertyValue> bindVariableMap = new HashMap<String, PropertyValue>(); + final HashMap<String, PropertyValue> bindVariableMap = new HashMap<>(); /** * The map of indexes (each selector uses one index) */ - final HashMap<String, Integer> selectorIndexes = new HashMap<String, Integer>(); + final HashMap<String, Integer> selectorIndexes = new HashMap<>(); /** * The list of selectors of this query. For a join, there can be multiple selectors. */ - final ArrayList<SelectorImpl> selectors = new ArrayList<SelectorImpl>(); + final ArrayList<SelectorImpl> selectors = new ArrayList<>(); ConstraintImpl constraint; @@ -603,7 +603,7 @@ public class QueryImpl implements Query { .replaceFirst("(?i)\\bexplain\\s+", "")) }, null, null); - return Arrays.asList(r).iterator(); + return List.of(r).iterator(); } if (LOG.isDebugEnabled()) { logDebug("query execute " + statement); @@ -731,13 +731,13 @@ public class QueryImpl implements Query { // use a greedy algorithm SourceImpl result = null; - Set<SourceImpl> available = new HashSet<SourceImpl>(); + Set<SourceImpl> available = new HashSet<>(); // the query is only slow if all possible join orders are slow // (in theory, due to using the greedy algorithm, a query might be considered // slow even thought there is a plan that doesn't need to use traversal, but // only for 3-way and higher joins, and only if traversal is considered very fast) boolean isPotentiallySlowJoin = true; - while (sources.size() > 0) { + while (!sources.isEmpty()) { int bestIndex = 0; double bestCost = Double.POSITIVE_INFINITY; ExecutionPlan bestPlan = null; @@ -776,10 +776,8 @@ public class QueryImpl implements Query { return last; } List<SourceImpl> selectors = result.getInnerJoinSelectors(); - Set<SourceImpl> oldSelectors = new HashSet<SourceImpl>(); - oldSelectors.addAll(selectors); - Set<SourceImpl> newSelectors = new HashSet<SourceImpl>(); - newSelectors.addAll(selectors); + Set<SourceImpl> oldSelectors = new HashSet<>(selectors); + Set<SourceImpl> newSelectors = new HashSet<>(selectors); newSelectors.add(last); for (JoinConditionImpl j : conditions) { // only join conditions can now be evaluated, @@ -809,9 +807,9 @@ public class QueryImpl implements Query { * query iterator to lazily execute and return counts. */ abstract static class MeasuringIterator extends AbstractIterator<ResultRowImpl> { - private Iterator<ResultRowImpl> delegate; - private Query query; - private List<ResultRowImpl> results; + private final Iterator<ResultRowImpl> delegate; + private final Query query; + private final List<ResultRowImpl> results; private boolean init; MeasuringIterator(Query query, Iterator<ResultRowImpl> delegate) { @@ -1049,7 +1047,7 @@ public class QueryImpl implements Query { @Override public List<String> getBindVariableNames() { - return new ArrayList<String>(bindVariableMap.keySet()); + return new ArrayList<>(bindVariableMap.keySet()); } @Override @@ -1292,7 +1290,7 @@ public class QueryImpl implements Query { if (orderings == null) { return null; } - ArrayList<OrderEntry> sortOrder = new ArrayList<OrderEntry>(); + ArrayList<OrderEntry> sortOrder = new ArrayList<>(); for (OrderingImpl o : orderings) { DynamicOperandImpl op = o.getOperand(); OrderEntry e = op.getOrderEntry(filter.getSelector(), o); @@ -1301,7 +1299,7 @@ public class QueryImpl implements Query { } sortOrder.add(e); } - if (sortOrder.size() == 0) { + if (sortOrder.isEmpty()) { return null; } return sortOrder; @@ -1501,7 +1499,7 @@ public class QueryImpl implements Query { } else { recomputed.append(original.substring(0, origUpper.indexOf(where) + whereOffset)); recomputed.append(query.getConstraint()); - if (origUpper.indexOf(orderBy) > -1) { + if (origUpper.contains(orderBy)) { recomputed.append(original.substring(origUpper.indexOf(orderBy))); } } diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryOptions.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryOptions.java index 1edde3b04e..d4689c987b 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryOptions.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryOptions.java @@ -50,7 +50,7 @@ public class QueryOptions { FAIL, // the default setting DEFAULT - }; + } public QueryOptions() { } diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ResultImpl.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ResultImpl.java index aa7b17c114..f2c5cdfb5f 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ResultImpl.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ResultImpl.java @@ -17,7 +17,6 @@ package org.apache.jackrabbit.oak.query; import java.util.ArrayList; -import java.util.Iterator; import org.apache.jackrabbit.oak.api.Result; import org.apache.jackrabbit.oak.api.ResultRow; @@ -47,7 +46,7 @@ public class ResultImpl implements Result { @Override public String[] getColumnSelectorNames() { - ArrayList<String> list = new ArrayList<String>(); + ArrayList<String> list = new ArrayList<>(); for (ColumnImpl c : query.getColumns()) { SelectorImpl selector = c.getSelector(); String name = selector == null ? null : selector.getSelectorName(); @@ -55,7 +54,7 @@ public class ResultImpl implements Result { list.add(name); } } - return list.toArray(new String[list.size()]); + return list.toArray(new String[0]); } @Override @@ -65,14 +64,7 @@ public class ResultImpl implements Result { @Override public Iterable<? extends ResultRow> getRows() { - return new Iterable<ResultRowImpl>() { - - @Override - public Iterator<ResultRowImpl> iterator() { - return query.getRows(); - } - - }; + return (Iterable<ResultRowImpl>) query::getRows; } @Override diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ResultRowImpl.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ResultRowImpl.java index a2337abb7b..cb7a372fcc 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ResultRowImpl.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ResultRowImpl.java @@ -229,44 +229,40 @@ public class ResultRowImpl implements ResultRow { if (orderings == null) { return null; } - return new Comparator<ResultRowImpl>() { - - @Override - public int compare(ResultRowImpl o1, ResultRowImpl o2) { - PropertyValue[] orderValues = o1.getOrderValues(); - PropertyValue[] orderValues2 = o2.getOrderValues(); - int comp = 0; - for (int i = 0, size = orderings.length; i < size; i++) { - PropertyValue a = orderValues[i]; - PropertyValue b = orderValues2[i]; - if (a == null || b == null) { - if (a == b) { - comp = 0; - } else if (a == null) { - // TODO order by: nulls first (it looks like), or - // low? - comp = -1; - } else { - comp = 1; - } + return (o1, o2) -> { + PropertyValue[] orderValues = o1.getOrderValues(); + PropertyValue[] orderValues2 = o2.getOrderValues(); + int comp = 0; + for (int i = 0, size = orderings.length; i < size; i++) { + PropertyValue a = orderValues[i]; + PropertyValue b = orderValues2[i]; + if (a == null || b == null) { + if (a == b) { + comp = 0; + } else if (a == null) { + // TODO order by: nulls first (it looks like), or + // low? + comp = -1; } else { - comp = a.compareTo(b); + comp = 1; } - if (comp != 0) { - if (orderings[i].isDescending()) { - comp = -comp; - } - break; + } else { + comp = a.compareTo(b); + } + if (comp != 0) { + if (orderings[i].isDescending()) { + comp = -comp; } + break; } - return comp; } + return comp; }; } static ResultRowImpl getMappingResultRow(ResultRowImpl delegate, final Map<String, String> columnToFacetMap) { - if (columnToFacetMap.size() == 0) { + if (columnToFacetMap.isEmpty()) { return delegate; } diff --git a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/PrefetchIterator.java b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/PrefetchIterator.java index 02c6982e3f..a557ff1d39 100644 --- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/PrefetchIterator.java +++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/PrefetchIterator.java @@ -110,7 +110,7 @@ public class PrefetchIterator<K> implements Iterator<K> { } } prefetchDone = true; - ArrayList<K> list = new ArrayList<K>(); + ArrayList<K> list = new ArrayList<>(); long end; if (timeout <= 0) { end = 0; @@ -134,7 +134,7 @@ public class PrefetchIterator<K> implements Iterator<K> { position++; list.add(it.next()); } - if (list.size() > 0) { + if (!list.isEmpty()) { prefetchIterator = list.iterator(); position -= list.size(); } @@ -176,7 +176,7 @@ public class PrefetchIterator<K> implements Iterator<K> { long size; /** - * Whether or not the expected size should be read from the result. + * Whether the expected size should be read from the result. */ boolean fastSize; diff --git a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryImpl.java b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryImpl.java index 8a6e26a565..97403f1a89 100644 --- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryImpl.java +++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryImpl.java @@ -28,7 +28,6 @@ import javax.jcr.PathNotFoundException; import javax.jcr.RepositoryException; import javax.jcr.Value; import javax.jcr.ValueFactory; -import javax.jcr.query.InvalidQueryException; import javax.jcr.query.Query; import javax.jcr.query.QueryResult; import javax.jcr.version.VersionException; @@ -48,7 +47,7 @@ public class QueryImpl implements Query { private final SessionContext sessionContext; private final QueryManagerImpl manager; - private final HashMap<String, Value> bindVariableMap = new HashMap<String, Value>(); + private final HashMap<String, Value> bindVariableMap = new HashMap<>(); private final String language; private final String statement; private Optional<Long> limit = Optional.empty(); @@ -76,12 +75,12 @@ public class QueryImpl implements Query { bindVariableMap.put(varName, value); } - private void parse() throws InvalidQueryException, RepositoryException { + private void parse() throws RepositoryException { if (parsed) { return; } List<String> names = sessionContext.getSessionDelegate().perform( - new SessionOperation<List<String>>("parse") { + new SessionOperation<>("parse") { @NotNull @Override public List<String> perform() throws RepositoryException { @@ -98,7 +97,7 @@ public class QueryImpl implements Query { @Override public QueryResult execute() throws RepositoryException { return sessionContext.getSessionDelegate().perform( - new SessionOperation<QueryResult>("execute") { + new SessionOperation<>("execute") { @NotNull @Override public QueryResult perform() throws RepositoryException { diff --git a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryManagerImpl.java b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryManagerImpl.java index 1da93f62c8..b169e3ebdb 100644 --- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryManagerImpl.java +++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryManagerImpl.java @@ -63,7 +63,7 @@ public class QueryManagerImpl implements QueryManager { private final SessionContext sessionContext; private final QueryObjectModelFactoryImpl qomFactory; private final QueryEngine queryEngine; - private final HashSet<String> supportedQueryLanguages = new HashSet<String>(); + private final HashSet<String> supportedQueryLanguages = new HashSet<>(); private final MeterStats queryCount; private final TimerStats queryDuration; @@ -103,13 +103,13 @@ public class QueryManagerImpl implements QueryManager { } @Override - public String[] getSupportedQueryLanguages() throws RepositoryException { - ArrayList<String> list = new ArrayList<String>(queryEngine.getSupportedQueryLanguages()); + public String[] getSupportedQueryLanguages() { + ArrayList<String> list = new ArrayList<>(queryEngine.getSupportedQueryLanguages()); // JQOM is supported in this level only (converted to JCR_SQL2) list.add(Query.JCR_JQOM); // create a new instance each time because the array is mutable // (the caller could modify it) - return list.toArray(new String[list.size()]); + return list.toArray(new String[0]); } /** @@ -152,7 +152,7 @@ public class QueryManagerImpl implements QueryManager { private static Map<String, PropertyValue> convertMap( HashMap<String, Value> bindVariableMap) throws RepositoryException { - HashMap<String, PropertyValue> map = new HashMap<String, PropertyValue>(); + HashMap<String, PropertyValue> map = new HashMap<>(); for (Entry<String, Value> e : bindVariableMap.entrySet()) { map.put(e.getKey(), PropertyValues.create(PropertyStates.createProperty("", diff --git a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryResultImpl.java b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryResultImpl.java index 38638ac9ca..3d5de8380e 100644 --- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryResultImpl.java +++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/QueryResultImpl.java @@ -69,7 +69,7 @@ public class QueryResultImpl implements QueryResult { } @Override - public String[] getColumnNames() throws RepositoryException { + public String[] getColumnNames() { return result.getColumnNames(); } @@ -80,7 +80,7 @@ public class QueryResultImpl implements QueryResult { @Override public RowIterator getRows() throws RepositoryException { - Iterator<RowImpl> rowIterator = new Iterator<RowImpl>() { + Iterator<RowImpl> rowIterator = new Iterator<>() { private final Iterator<? extends ResultRow> it = result.getRows().iterator(); private final String pathSelector; @@ -135,13 +135,15 @@ public class QueryResultImpl implements QueryResult { } }; - final PrefetchIterator<RowImpl> prefIt = new PrefetchIterator<RowImpl>( + final PrefetchIterator<RowImpl> prefIt = new PrefetchIterator<>( sessionDelegate.sync(rowIterator), - new PrefetchOptions() { { - size = result.getSize(); - fastSize = sessionContext.getFastQueryResultSize(); - fastSizeCallback = result; - } }); + new PrefetchOptions() { + { + size = result.getSize(); + fastSize = sessionContext.getFastQueryResultSize(); + fastSizeCallback = result; + } + }); return new RowIteratorAdapter(prefIt) { @Override public long getSize() { @@ -171,62 +173,64 @@ public class QueryResultImpl implements QueryResult { throw new RepositoryException("Query does not contain a selector: " + Arrays.toString(columnSelectorNames)); } - Iterator<NodeImpl<? extends NodeDelegate>> nodeIterator = - new Iterator<NodeImpl<? extends NodeDelegate>>() { + Iterator<NodeImpl<? extends NodeDelegate>> nodeIterator = + new Iterator<>() { - private final Iterator<? extends ResultRow> it = result.getRows().iterator(); - private NodeImpl<? extends NodeDelegate> current; + private final Iterator<? extends ResultRow> it = result.getRows().iterator(); + private NodeImpl<? extends NodeDelegate> current; - { - fetch(); - } + { + fetch(); + } - private void fetch() { - current = null; - while (it.hasNext()) { - ResultRow r = it.next(); - Tree tree = r.getTree(selectorName); - if (tree != null && tree.exists()) { - try { - current = getNode(tree); - break; - } catch (RepositoryException e) { - LOG.warn("Unable to fetch result node for path " - + tree.getPath(), e); + private void fetch() { + current = null; + while (it.hasNext()) { + ResultRow r = it.next(); + Tree tree = r.getTree(selectorName); + if (tree != null && tree.exists()) { + try { + current = getNode(tree); + break; + } catch (RepositoryException e) { + LOG.warn("Unable to fetch result node for path " + + tree.getPath(), e); + } + } } } - } - } - @Override - public boolean hasNext() { - return current != null; - } + @Override + public boolean hasNext() { + return current != null; + } - @Override - public NodeImpl<? extends NodeDelegate> next() { - if (current == null) { - throw new NoSuchElementException(); - } - NodeImpl<? extends NodeDelegate> n = current; - fetch(); - return n; - } + @Override + public NodeImpl<? extends NodeDelegate> next() { + if (current == null) { + throw new NoSuchElementException(); + } + NodeImpl<? extends NodeDelegate> n = current; + fetch(); + return n; + } - @Override - public void remove() { - throw new UnsupportedOperationException(); - } + @Override + public void remove() { + throw new UnsupportedOperationException(); + } - }; - final PrefetchIterator<NodeImpl<? extends NodeDelegate>> prefIt = - new PrefetchIterator<NodeImpl<? extends NodeDelegate>>( - sessionDelegate.sync(nodeIterator), - new PrefetchOptions() { { - size = result.getSize(); - fastSize = sessionContext.getFastQueryResultSize(); - fastSizeCallback = result; - } }); + }; + final PrefetchIterator<NodeImpl<? extends NodeDelegate>> prefIt = + new PrefetchIterator<>( + sessionDelegate.sync(nodeIterator), + new PrefetchOptions() { + { + size = result.getSize(); + fastSize = sessionContext.getFastQueryResultSize(); + fastSizeCallback = result; + } + }); return new NodeIteratorAdapter(prefIt) { @Override public long getSize() { diff --git a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/RowImpl.java b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/RowImpl.java index 3eaf9ceaed..9114ccb860 100644 --- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/RowImpl.java +++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/query/RowImpl.java @@ -77,13 +77,13 @@ public class RowImpl implements Row { } @Override - public double getScore() throws RepositoryException { + public double getScore() { // TODO row score return 0.01; } @Override - public double getScore(String selectorName) throws RepositoryException { + public double getScore(String selectorName) { // TODO row score return 0.01; } diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditor2Test.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditor2Test.java index 405a7442b9..a3cd595a2e 100644 --- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditor2Test.java +++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditor2Test.java @@ -19,13 +19,11 @@ package org.apache.jackrabbit.oak.plugins.index.lucene; -import java.io.IOException; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; -import org.apache.jackrabbit.oak.api.CommitFailedException; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.plugins.index.IndexCommitCallback; @@ -41,13 +39,10 @@ import org.apache.jackrabbit.oak.plugins.index.search.PropertyDefinition; import org.apache.jackrabbit.oak.plugins.index.search.PropertyUpdateCallback; import org.apache.jackrabbit.oak.plugins.index.search.spi.editor.FulltextIndexWriterFactory; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; -import org.apache.jackrabbit.oak.spi.commit.Editor; import org.apache.jackrabbit.oak.spi.commit.EditorHook; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; import org.apache.jackrabbit.oak.spi.state.NodeState; import org.apache.lucene.index.IndexableField; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import org.junit.Test; import static org.apache.jackrabbit.oak.InitialContentHelper.INITIAL_CONTENT; @@ -62,15 +57,15 @@ import static org.mockito.Mockito.mock; public class LuceneIndexEditor2Test { - private NodeState root = INITIAL_CONTENT; + private final NodeState root = INITIAL_CONTENT; private NodeState before = root; - private IndexUpdateCallback updateCallback = mock(IndexUpdateCallback.class); - private ExtractedTextCache extractedTextCache = new ExtractedTextCache(0, 0); - private TestIndexingContext indexingContext = new TestIndexingContext(); - private TestWriterFactory writerFactory = new TestWriterFactory(); - private TestPropertyUpdateCallback propCallback = new TestPropertyUpdateCallback(); - private TestWriter writer = new TestWriter(); - private String indexPath = "/oak:index/fooIndex"; + private final IndexUpdateCallback updateCallback = mock(IndexUpdateCallback.class); + private final ExtractedTextCache extractedTextCache = new ExtractedTextCache(0, 0); + private final TestIndexingContext indexingContext = new TestIndexingContext(); + private final TestWriterFactory writerFactory = new TestWriterFactory(); + private final TestPropertyUpdateCallback propCallback = new TestPropertyUpdateCallback(); + private final TestWriter writer = new TestWriter(); + private final String indexPath = "/oak:index/fooIndex"; @Test public void basics() throws Exception{ @@ -194,16 +189,11 @@ public class LuceneIndexEditor2Test { } private EditorHook createHook(LuceneIndexEditorContext context) { - IndexEditorProvider provider = new IndexEditorProvider() { - @Nullable - @Override - public Editor getIndexEditor(@NotNull String type, @NotNull NodeBuilder definition, - @NotNull NodeState root, @NotNull IndexUpdateCallback callback) { - if (TYPE_LUCENE.equals(type)) { - return new LuceneIndexEditor(context); - } - return null; + IndexEditorProvider provider = (type, definition, root, callback) -> { + if (TYPE_LUCENE.equals(type)) { + return new LuceneIndexEditor(context); } + return null; }; String async = context.isAsyncIndexing() ? "async" : null; @@ -238,7 +228,7 @@ public class LuceneIndexEditor2Test { } @Override - public void done() throws CommitFailedException { + public void done() { doneInvocationCount++; } @@ -295,17 +285,17 @@ public class LuceneIndexEditor2Test { boolean closed; @Override - public void updateDocument(String path, Iterable<? extends IndexableField> doc) throws IOException { + public void updateDocument(String path, Iterable<? extends IndexableField> doc) { docs.put(path, doc); } @Override - public void deleteDocuments(String path) throws IOException { + public void deleteDocuments(String path) { deletedPaths.add(path); } @Override - public boolean close(long timestamp) throws IOException { + public boolean close(long timestamp) { closed = true; return true; } diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorProviderTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorProviderTest.java index f401b7cab4..35079d2706 100644 --- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorProviderTest.java +++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorProviderTest.java @@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.plugins.index.lucene; import org.apache.commons.lang3.reflect.FieldUtils; -import org.apache.jackrabbit.oak.api.CommitFailedException; import org.apache.jackrabbit.oak.plugins.index.ContextAwareCallback; import org.apache.jackrabbit.oak.plugins.index.IndexCommitCallback; import org.apache.jackrabbit.oak.plugins.index.IndexUpdateCallback; @@ -50,72 +49,75 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class LuceneIndexEditorProviderTest { - private NodeState root = INITIAL_CONTENT; - private NodeBuilder builder = root.builder(); + private final NodeState root = INITIAL_CONTENT; + private final NodeBuilder builder = root.builder(); @Test public void readOnlyBuilderUsedForSync() throws Exception { - LuceneIndexEditorProvider editorProvider = new LuceneIndexEditorProvider(null, + try (LuceneIndexEditorProvider editorProvider = new LuceneIndexEditorProvider(null, null, null, null, - Mounts.defaultMountInfoProvider()); - editorProvider.setIndexingQueue(mock(DocumentQueue.class)); + Mounts.defaultMountInfoProvider())) { + editorProvider.setIndexingQueue(mock(DocumentQueue.class)); - IndexUpdateCallback callback = new TestCallback("/oak:index/fooIndex", newCommitInfo(), false, false); - NodeBuilder defnBuilder = createIndexDefinition("fooIndex").builder(); - Editor editor = editorProvider.getIndexEditor(TYPE_LUCENE, defnBuilder, root, callback); - LuceneIndexEditor luceneEditor = (LuceneIndexEditor) editor; + IndexUpdateCallback callback = new TestCallback("/oak:index/fooIndex", newCommitInfo(), false, false); + NodeBuilder defnBuilder = createIndexDefinition("fooIndex").builder(); + Editor editor = editorProvider.getIndexEditor(TYPE_LUCENE, defnBuilder, root, callback); + LuceneIndexEditor luceneEditor = (LuceneIndexEditor) editor; - NodeBuilder builderFromContext = - (NodeBuilder) FieldUtils.readField(luceneEditor.getContext(), "definitionBuilder", true); + NodeBuilder builderFromContext = + (NodeBuilder) FieldUtils.readField(luceneEditor.getContext(), "definitionBuilder", true); - try { - builderFromContext.setProperty("foo", "bar"); - fail("Should have been read only builder"); - } catch (UnsupportedOperationException ignore) { + try { + builderFromContext.setProperty("foo", "bar"); + fail("Should have been read only builder"); + } catch (UnsupportedOperationException ignore) { + } } } @Test public void reuseOldIndexDefinition() throws Exception{ IndexTracker tracker = mock(IndexTracker.class); - LuceneIndexEditorProvider editorProvider = new LuceneIndexEditorProvider(null, + try (LuceneIndexEditorProvider editorProvider = new LuceneIndexEditorProvider(null, tracker, null, null, - Mounts.defaultMountInfoProvider()); - editorProvider.setIndexingQueue(mock(DocumentQueue.class)); - //Set up a different IndexDefinition which needs to be returned - //from tracker with a marker property - NodeBuilder testBuilder = createIndexDefinition("fooIndex").builder(); - testBuilder.setProperty("foo", "bar"); - LuceneIndexDefinition defn = new LuceneIndexDefinition(root, testBuilder.getNodeState(), "/foo"); - when(tracker.getIndexDefinition("/oak:index/fooIndex")).thenReturn(defn); - - IndexUpdateCallback callback = new TestCallback("/oak:index/fooIndex", newCommitInfo(), false, false); - NodeBuilder defnBuilder = createIndexDefinition("fooIndex").builder(); - Editor editor = editorProvider.getIndexEditor(TYPE_LUCENE, defnBuilder, root, callback); - LuceneIndexEditor luceneEditor = (LuceneIndexEditor) editor; - FulltextIndexEditorContext<Document> context = luceneEditor.getContext(); - - //Definition should reflect the marker property - assertEquals("bar", context.getDefinition().getDefinitionNodeState().getString("foo")); + Mounts.defaultMountInfoProvider())) { + editorProvider.setIndexingQueue(mock(DocumentQueue.class)); + //Set up a different IndexDefinition which needs to be returned + //from tracker with a marker property + NodeBuilder testBuilder = createIndexDefinition("fooIndex").builder(); + testBuilder.setProperty("foo", "bar"); + LuceneIndexDefinition defn = new LuceneIndexDefinition(root, testBuilder.getNodeState(), "/foo"); + when(tracker.getIndexDefinition("/oak:index/fooIndex")).thenReturn(defn); + + IndexUpdateCallback callback = new TestCallback("/oak:index/fooIndex", newCommitInfo(), false, false); + NodeBuilder defnBuilder = createIndexDefinition("fooIndex").builder(); + Editor editor = editorProvider.getIndexEditor(TYPE_LUCENE, defnBuilder, root, callback); + LuceneIndexEditor luceneEditor = (LuceneIndexEditor) editor; + FulltextIndexEditorContext<Document> context = luceneEditor.getContext(); + + //Definition should reflect the marker property + assertEquals("bar", context.getDefinition().getDefinitionNodeState().getString("foo")); + } } @Test public void editorNullInCaseOfReindex() throws Exception{ - LuceneIndexEditorProvider editorProvider = new LuceneIndexEditorProvider(null, + try (LuceneIndexEditorProvider editorProvider = new LuceneIndexEditorProvider(null, null, null, null, - Mounts.defaultMountInfoProvider()); - editorProvider.setIndexingQueue(mock(DocumentQueue.class)); - IndexUpdateCallback callback = new TestCallback("/oak:index/fooIndex", newCommitInfo(), true, false); - NodeBuilder defnBuilder = createIndexDefinition("fooIndex").builder(); - Editor editor = editorProvider.getIndexEditor(TYPE_LUCENE, defnBuilder, root, callback); - assertNull(editor); + Mounts.defaultMountInfoProvider())) { + editorProvider.setIndexingQueue(mock(DocumentQueue.class)); + IndexUpdateCallback callback = new TestCallback("/oak:index/fooIndex", newCommitInfo(), true, false); + NodeBuilder defnBuilder = createIndexDefinition("fooIndex").builder(); + Editor editor = editorProvider.getIndexEditor(TYPE_LUCENE, defnBuilder, root, callback); + assertNull(editor); + } } private NodeState createIndexDefinition(String idxName) { @@ -128,9 +130,8 @@ public class LuceneIndexEditorProviderTest { } private CommitInfo newCommitInfo() { - CommitInfo info = new CommitInfo("admin", "s1", + return new CommitInfo("admin", "s1", Map.of(CommitContext.NAME, new SimpleCommitContext())); - return info; } private static class TestCallback implements IndexUpdateCallback, IndexingContext, ContextAwareCallback { @@ -172,7 +173,7 @@ public class LuceneIndexEditorProviderTest { } @Override - public void indexUpdate() throws CommitFailedException { + public void indexUpdate() { } diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorTest.java index 92ef77eff9..6558d43a20 100644 --- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorTest.java +++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorTest.java @@ -100,11 +100,11 @@ import static org.junit.Assume.assumeFalse; public class LuceneIndexEditorTest { private EditorHook HOOK; - private NodeState root = INITIAL_CONTENT; + private final NodeState root = INITIAL_CONTENT; private NodeBuilder builder = root.builder(); - private IndexTracker tracker = new IndexTracker(); + private final IndexTracker tracker = new IndexTracker(); private LuceneIndexNode indexNode; @@ -602,7 +602,7 @@ public class LuceneIndexEditorTest { @Override public Editor getIndexEditor(@NotNull String type, @NotNull NodeBuilder definition, @NotNull NodeState root, - @NotNull IndexUpdateCallback callback) throws CommitFailedException { + @NotNull IndexUpdateCallback callback) { if (PropertyIndexEditorProvider.TYPE.equals(type)) { return new FailOnDemandEditor(); } diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexPlannerCommonTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexPlannerCommonTest.java index a831c8aad1..839523d23f 100644 --- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexPlannerCommonTest.java +++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexPlannerCommonTest.java @@ -586,7 +586,7 @@ public class LuceneIndexPlannerCommonTest extends IndexPlannerCommonTest { planner = new FulltextIndexPlanner(node, indexPath, filter, Collections.emptyList()); plan = planner.getPlan(); - //Because path transormation comes into play only when direct prop defs don't match + //Because path transformation comes into play only when direct prop defs don't match assertEquals(documentsPerValue(numOfDocs), plan.getEstimatedEntryCount()); filter = createFilter("nt:base"); diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java index 19e003476c..5997007be5 100644 --- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java +++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderServiceTest.java @@ -27,7 +27,6 @@ import java.util.concurrent.Callable; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; -import java.util.function.Predicate; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.reflect.FieldUtils; @@ -148,7 +147,7 @@ public class LuceneIndexProviderServiceTest { assertNotNull(context.getService(JournalPropertyService.class)); assertNotNull(context.getService(IndexImporterProvider.class)); - assertNotNull(WhiteboardUtils.getServices(wb, Runnable.class, (Predicate<Runnable>)r -> r instanceof PropertyIndexCleaner)); + assertNotNull(WhiteboardUtils.getServices(wb, Runnable.class, r -> r instanceof PropertyIndexCleaner)); MockOsgi.deactivate(service, context.bundleContext()); @@ -401,7 +400,7 @@ public class LuceneIndexProviderServiceTest { MockOsgi.activate(service, context.bundleContext(), config); ServiceReference[] sr = context.bundleContext().getAllServiceReferences(Runnable.class.getName(), "(scheduler.name="+ PropertyIndexCleaner.class.getName()+")"); - assertEquals(sr.length, 1); + assertEquals(1, sr.length); assertEquals(142L, sr[0].getProperty("scheduler.period")); } diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexQueryCommonTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexQueryCommonTest.java index 273deb0db2..a2e5faff74 100644 --- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexQueryCommonTest.java +++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexQueryCommonTest.java @@ -34,7 +34,7 @@ import java.util.concurrent.Executors; */ public class LuceneIndexQueryCommonTest extends IndexQueryCommonTest { - private ExecutorService executorService = Executors.newFixedThreadPool(2); + private final ExecutorService executorService = Executors.newFixedThreadPool(2); @Rule public TemporaryFolder temporaryFolder = new TemporaryFolder(new File("target")); diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java index 18aea476ff..235f8ee278 100644 --- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java +++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexTest.java @@ -127,7 +127,7 @@ public class LuceneIndexTest { private NodeBuilder builder = root.builder(); - private Set<File> dirs = new HashSet<>(); + private final Set<File> dirs = new HashSet<>(); private IndexTracker tracker; 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 53dd4e788c..e4aba564a8 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 @@ -155,7 +155,7 @@ public class LucenePropertyIndexTest extends AbstractQueryTest { */ static final int NUMBER_OF_NODES = LucenePropertyIndex.LUCENE_QUERY_BATCH_SIZE * 2; - private ExecutorService executorService = Executors.newFixedThreadPool(2); + private final ExecutorService executorService = Executors.newFixedThreadPool(2); @Rule public TemporaryFolder temporaryFolder = new TemporaryFolder(new File("target")); @@ -165,15 +165,13 @@ public class LucenePropertyIndexTest extends AbstractQueryTest { private LuceneIndexEditorProvider editorProvider; - private TestUtil.OptionalEditorProvider optionalEditorProvider = new TestUtil.OptionalEditorProvider(); + private final TestUtil.OptionalEditorProvider optionalEditorProvider = new TestUtil.OptionalEditorProvider(); private NodeStore nodeStore; - private LuceneIndexProvider provider; - private ResultCountingIndexProvider queryIndexProvider; - private QueryEngineSettings queryEngineSettings = new QueryEngineSettings(); + private final QueryEngineSettings queryEngineSettings = new QueryEngineSettings(); @After public void after() { @@ -190,7 +188,7 @@ public class LucenePropertyIndexTest extends AbstractQueryTest { protected ContentRepository createRepository() { IndexCopier copier = createIndexCopier(); editorProvider = new LuceneIndexEditorProvider(copier, new ExtractedTextCache(10* FileUtils.ONE_MB, 100)); - provider = new LuceneIndexProvider(copier); + LuceneIndexProvider provider = new LuceneIndexProvider(copier); queryIndexProvider = new ResultCountingIndexProvider(provider); nodeStore = new MemoryNodeStore(InitialContentHelper.INITIAL_CONTENT); return new Oak(nodeStore) @@ -1451,8 +1449,8 @@ public class LucenePropertyIndexTest extends AbstractQueryTest { n.setProperty("mytext", "the quick brown fox jumps over the lazy dog."); root.commit(); - String sql = "SELECT * FROM [nt:base] WHERE [jcr:path] LIKE \'" + r.getPath() + "/%\'" - + " AND CONTAINS(*, \'text \'\'fox jumps\'\' -other\')"; + String sql = "SELECT * FROM [nt:base] WHERE [jcr:path] LIKE '" + r.getPath() + "/%'" + + " AND CONTAINS(*, 'text ''fox jumps'' -other')"; assertQuery(sql, List.of("/test/node1")); } @@ -1462,7 +1460,7 @@ public class LucenePropertyIndexTest extends AbstractQueryTest { NO_MAPPINGS).getRows()); String measure = ""; - if (result.size() > 0) { + if (!result.isEmpty()) { measure = result.get(0).toString(); } return measure; @@ -2111,11 +2109,9 @@ public class LucenePropertyIndexTest extends AbstractQueryTest { // execute the query again to assert the excerpts value of the first row Result result = executeQuery(query, SQL2, NO_BINDINGS); - Iterator<? extends ResultRow> rowsIt = result.getRows().iterator(); - while (rowsIt.hasNext()) { - ResultRow row = rowsIt.next(); + for (ResultRow row : result.getRows()) { PropertyValue excerptValue = row.getValue("rep:excerpt"); - assertFalse("There is an excerpt expected for each result row for term 'foo'", excerptValue == null || "".equals(excerptValue.getValue(STRING))); + assertFalse("There is an excerpt expected for each result row for term 'foo'", excerptValue == null || excerptValue.getValue(STRING).isEmpty()); } } @@ -2138,11 +2134,11 @@ public class LucenePropertyIndexTest extends AbstractQueryTest { assertTrue(resultRows.hasNext()); ResultRow firstRow = result.getRows().iterator().next(); PropertyValue excerptValue = firstRow.getValue("rep:excerpt"); - assertTrue("There is an excerpt expected for rep:excerpt",excerptValue != null && !"".equals(excerptValue.getValue(STRING))); + assertTrue("There is an excerpt expected for rep:excerpt",excerptValue != null && !excerptValue.getValue(STRING).isEmpty()); excerptValue = firstRow.getValue("rep:excerpt(.)"); - assertTrue("There is an excerpt expected for rep:excerpt(.)",excerptValue != null && !"".equals(excerptValue.getValue(STRING))); + assertTrue("There is an excerpt expected for rep:excerpt(.)",excerptValue != null && !excerptValue.getValue(STRING).isEmpty()); excerptValue = firstRow.getValue("rep:excerpt(bar)"); - assertTrue("There is an excerpt expected for rep:excerpt(bar) ",excerptValue != null && !"".equals(excerptValue.getValue(STRING))); + assertTrue("There is an excerpt expected for rep:excerpt(bar) ",excerptValue != null && !excerptValue.getValue(STRING).isEmpty()); } @Test @@ -2863,7 +2859,7 @@ public class LucenePropertyIndexTest extends AbstractQueryTest { long defSeed = idxState.getProperty(PROP_RANDOM_SEED).getValue(Type.LONG); long clonedSeed = idxState.getChildNode(INDEX_DEFINITION_NODE).getProperty(PROP_RANDOM_SEED).getValue(Type.LONG); - assertTrue("Injected def (" + defSeed + ")and clone (" + clonedSeed + " seeds aren't same", defSeed == clonedSeed); + assertEquals("Injected def (" + defSeed + ")and clone (" + clonedSeed + " seeds aren't same", defSeed, clonedSeed); } @Test @@ -2888,7 +2884,7 @@ public class LucenePropertyIndexTest extends AbstractQueryTest { long clonedSeed = idxState.getChildNode(INDEX_DEFINITION_NODE).getProperty(PROP_RANDOM_SEED).getValue(Type.LONG); assertEquals("Random seed not updated", seed, defSeed); - assertTrue("Injected def (" + defSeed + ")and clone (" + clonedSeed + " seeds aren't same", defSeed == clonedSeed); + assertEquals("Injected def (" + defSeed + ")and clone (" + clonedSeed + " seeds aren't same", defSeed, clonedSeed); } @Test @@ -2912,7 +2908,7 @@ public class LucenePropertyIndexTest extends AbstractQueryTest { long clonedSeed = idxState.getChildNode(INDEX_DEFINITION_NODE).getProperty(PROP_RANDOM_SEED).getValue(Type.LONG); assertEquals("Random seed not updated", seed, defSeed); - assertTrue("Injected def (" + defSeed + ")and clone (" + clonedSeed + " seeds aren't same", defSeed == clonedSeed); + assertEquals("Injected def (" + defSeed + ")and clone (" + clonedSeed + " seeds aren't same", defSeed, clonedSeed); } @Test @@ -2939,7 +2935,7 @@ public class LucenePropertyIndexTest extends AbstractQueryTest { assertNotEquals("Random seed not updated", orignalSeed, defSeed); assertNotEquals("Random seed updated to garbage", "garbage", defSeed); - assertTrue("Injected def (" + defSeed + ")and clone (" + clonedSeed + " seeds aren't same", defSeed == clonedSeed); + assertEquals("Injected def (" + defSeed + ")and clone (" + clonedSeed + " seeds aren't same", defSeed, clonedSeed); } @Test @@ -2960,7 +2956,7 @@ public class LucenePropertyIndexTest extends AbstractQueryTest { long clonedSeed = idxState.getChildNode(INDEX_DEFINITION_NODE).getProperty(PROP_RANDOM_SEED).getValue(Type.LONG); assertEquals("Random seed udpated to garbage", -12312, defSeed); - assertTrue("Injected def (" + defSeed + ")and clone (" + clonedSeed + " seeds aren't same", defSeed == clonedSeed); + assertEquals("Injected def (" + defSeed + ")and clone (" + clonedSeed + " seeds aren't same", defSeed, clonedSeed); } @Test @@ -3172,7 +3168,7 @@ public class LucenePropertyIndexTest extends AbstractQueryTest { return index.getChild(INDEX_DEFINITIONS_NAME).getChild(name); } - private Tree createFullTextIndex(Tree index, String name) throws CommitFailedException { + private Tree createFullTextIndex(Tree index, String name) { Tree def = index.addChild(INDEX_DEFINITIONS_NAME).addChild(name); def.setProperty(JcrConstants.JCR_PRIMARYTYPE, INDEX_DEFINITIONS_NODE_TYPE, Type.NAME); def.setProperty(TYPE_PROPERTY_NAME, LuceneIndexConstants.TYPE_LUCENE); @@ -3199,7 +3195,7 @@ public class LucenePropertyIndexTest extends AbstractQueryTest { private static List<String> getSortedPaths(List<Tuple> tuples, OrderDirection dir) { if (OrderDirection.DESC == dir) { - Collections.sort(tuples, Collections.reverseOrder()); + tuples.sort(Collections.reverseOrder()); } else { Collections.sort(tuples); } @@ -3361,7 +3357,7 @@ public class LucenePropertyIndexTest extends AbstractQueryTest { int accessCount = 0; @Override - public ExtractedText getText(String propertyPath, Blob blob) throws IOException { + public ExtractedText getText(String propertyPath, Blob blob) { ExtractedText result = idMap.get(blob.getContentIdentity()); if (result != null){ accessCount++; diff --git a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/query/FulltextIndex.java b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/query/FulltextIndex.java index d0c1f67d0a..f8beab7a3b 100644 --- a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/query/FulltextIndex.java +++ b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/query/FulltextIndex.java @@ -411,7 +411,7 @@ public abstract class FulltextIndex implements AdvancedQueryIndex, QueryIndex, N final IndexPlan plan, QueryLimits settings, SizeEstimator sizeEstimator) { pathPrefix = plan.getPathPrefix(); this.sizeEstimator = sizeEstimator; - Iterator<String> pathIterator = new Iterator<String>() { + Iterator<String> pathIterator = new Iterator<>() { private int readCount; private int rewoundCount; @@ -556,7 +556,7 @@ public abstract class FulltextIndex implements AdvancedQueryIndex, QueryIndex, N return pathRow.getValue(columnName); } - }; + } public interface IteratorRewoundStateProvider { int rewoundCount();