You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2023/07/11 14:45:29 UTC
svn commit: r1910939 - in /jackrabbit/trunk: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/PredicateDerefQuery.java jackrabbit-parent/pom.xml
Author: reschke
Date: Tue Jul 11 14:45:28 2023
New Revision: 1910939
URL: http://svn.apache.org/viewvc?rev=1910939&view=rev
Log:
JCR-4352: Update lucene-core dependency to 3.6.2
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/PredicateDerefQuery.java
jackrabbit/trunk/jackrabbit-parent/pom.xml
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/PredicateDerefQuery.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/PredicateDerefQuery.java?rev=1910939&r1=1910938&r2=1910939&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/PredicateDerefQuery.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/PredicateDerefQuery.java Tue Jul 11 14:45:28 2023
@@ -74,6 +74,11 @@ public class PredicateDerefQuery extends
* The scorer of the name test query
*/
private Scorer nameTestScorer;
+
+ /**
+ * Flag indicating if the children have already been calculated
+ */
+ private boolean childrenCalculated = false;
/**
* Creates a new <code>DerefQuery</code> based on a <code>context</code>
* query.
@@ -203,6 +208,7 @@ public class PredicateDerefQuery extends
public Scorer scorer(IndexReader reader, boolean scoreDocsInOrder,
boolean topScorer) throws IOException {
subQueryScorer = subQuery.weight(searcher).scorer(reader, scoreDocsInOrder, false);
+ childrenCalculated = false;
if (nameTest != null) {
nameTestScorer = new NameQuery(nameTest, version, nsMappings).weight(searcher).scorer(reader, scoreDocsInOrder, false);
}
@@ -311,58 +317,62 @@ public class PredicateDerefQuery extends
* @throws IOException
*/
private void calculateChildren() throws IOException {
+
+ if (!childrenCalculated) {
// subQueryHits.clear();
// hits.clear();
- subQueryScorer.score(new AbstractHitCollector() {
- @Override
- protected void collect(int doc, float score) {
- subQueryHits.set(doc);
- }
- });
+ subQueryScorer.score(new AbstractHitCollector() {
+ @Override
+ protected void collect(int doc, float score) {
+ subQueryHits.set(doc);
+ }
+ });
- TermDocs termDocs = reader.termDocs(new Term(FieldNames.PROPERTIES_SET, refProperty));
- String prefix = FieldNames.createNamedValue(refProperty, "");
- while (termDocs.next()) {
- int doc = termDocs.doc();
-
- String[] values = reader.document(doc).getValues(FieldNames.PROPERTIES);
- if (values == null) {
- // no reference properties at all on this node
- continue;
- }
- for (int v = 0; v < values.length; v++) {
- if (values[v].startsWith(prefix)) {
- String uuid = values[v].substring(prefix.length());
-
- TermDocs node = reader.termDocs(TermFactory.createUUIDTerm(uuid));
- try {
- while (node.next()) {
- if (subQueryHits.get(node.doc())) {
- hits.set(doc);
+ TermDocs termDocs = reader.termDocs(new Term(FieldNames.PROPERTIES_SET, refProperty));
+ String prefix = FieldNames.createNamedValue(refProperty, "");
+ while (termDocs.next()) {
+ int doc = termDocs.doc();
+
+ String[] values = reader.document(doc).getValues(FieldNames.PROPERTIES);
+ if (values == null) {
+ // no reference properties at all on this node
+ continue;
+ }
+ for (int v = 0; v < values.length; v++) {
+ if (values[v].startsWith(prefix)) {
+ String uuid = values[v].substring(prefix.length());
+
+ TermDocs node = reader.termDocs(TermFactory.createUUIDTerm(uuid));
+ try {
+ while (node.next()) {
+ if (subQueryHits.get(node.doc())) {
+ hits.set(doc);
+ }
}
+ } finally {
+ node.close();
}
- } finally {
- node.close();
}
}
}
- }
- // collect nameTest hits
- final BitSet nameTestHits = new BitSet();
- if (nameTestScorer != null) {
- nameTestScorer.score(new AbstractHitCollector() {
- @Override
- protected void collect(int doc, float score) {
- nameTestHits.set(doc);
- }
- });
- }
+ // collect nameTest hits
+ final BitSet nameTestHits = new BitSet();
+ if (nameTestScorer != null) {
+ nameTestScorer.score(new AbstractHitCollector() {
+ @Override
+ protected void collect(int doc, float score) {
+ nameTestHits.set(doc);
+ }
+ });
+ }
- // filter out the target nodes that do not match the name test
- // if there is any name test at all.
- if (nameTestScorer != null) {
- hits.and(nameTestHits);
+ // filter out the target nodes that do not match the name test
+ // if there is any name test at all.
+ if (nameTestScorer != null) {
+ hits.and(nameTestHits);
+ }
+ childrenCalculated = true;
}
}
}
Modified: jackrabbit/trunk/jackrabbit-parent/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-parent/pom.xml?rev=1910939&r1=1910938&r2=1910939&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-parent/pom.xml (original)
+++ jackrabbit/trunk/jackrabbit-parent/pom.xml Tue Jul 11 14:45:28 2023
@@ -499,7 +499,7 @@
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
- <version>3.6.0</version>
+ <version>3.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>