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 th...@apache.org on 2024/08/14 12:32:51 UTC
(jackrabbit-oak) 01/01: OAK-11025 Silence more warnings for ordered properties
This is an automated email from the ASF dual-hosted git repository.
thomasm pushed a commit to branch OAK-11025
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit 9e3beff2de7419d7b193308645ec845dc33f9c5d
Author: Thomas Mueller <th...@apache.org>
AuthorDate: Wed Aug 14 14:32:21 2024 +0200
OAK-11025 Silence more warnings for ordered properties
---
.../plugins/index/lucene/LuceneDocumentMaker.java | 42 +++++++++++++++++-----
1 file changed, 33 insertions(+), 9 deletions(-)
diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneDocumentMaker.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneDocumentMaker.java
index 2be705154e..0be7e419b2 100644
--- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneDocumentMaker.java
+++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneDocumentMaker.java
@@ -61,13 +61,13 @@ public class LuceneDocumentMaker extends FulltextDocumentMaker<Document> {
private static final String DYNAMIC_BOOST_SPLIT_REGEX = "[:/]";
// warn once every 10 seconds at most
- private static final long DUPLICATE_WARNING_INTERVAL_MS = 10 * 1000;
+ private static final long ORDERED_PROPERTY_WARNING_INTERVAL_MS = 10 * 1000;
private final FacetsConfigProvider facetsConfigProvider;
private final IndexAugmentorFactory augmentorFactory;
// when did we warn (static, as we construct new objects quite often)
- private static long lastDuplicateWarning;
+ private static long lastOrderedPropertyWarning;
public LuceneDocumentMaker(IndexDefinition definition,
IndexDefinition.IndexingRule indexingRule,
@@ -300,18 +300,42 @@ public class LuceneDocumentMaker extends FulltextDocumentMaker<Document> {
fieldAdded = true;
} else {
long now = System.currentTimeMillis();
- if (now > lastDuplicateWarning + DUPLICATE_WARNING_INTERVAL_MS) {
+ if (now > lastOrderedPropertyWarning + ORDERED_PROPERTY_WARNING_INTERVAL_MS) {
log.warn("Duplicate value for ordered field {}; ignoring. Possibly duplicate index definition.", f.name());
- lastDuplicateWarning = now;
+ lastOrderedPropertyWarning = now;
}
}
}
} catch (Exception e) {
- log.warn(
- "[{}] Ignoring ordered property. Could not convert property {} of type {} to type {} for path {}",
- getIndexName(), pname,
- Type.fromTag(property.getType().tag(), false),
- Type.fromTag(tag, false), path, e);
+ boolean unknownWarning = true;
+ String message = e.getMessage();
+ if (message.startsWith("Not a date string") ||
+ message.startsWith("Unable to parse the provided date field") ||
+ message.startsWith("For input string")) {
+ // This is a known warning, one of:
+ // - IllegalArgumentException: Not a date string
+ // - RuntimeException: Unable to parse the provided date field
+ // - NumberFormatException: For input string
+ // For these we do not log a stack trace, and we only log once every 10 seconds
+ // (the location of the code can be found if needed, as it's in Oak)
+ unknownWarning = false;
+ long now = System.currentTimeMillis();
+ if (now > lastOrderedPropertyWarning + ORDERED_PROPERTY_WARNING_INTERVAL_MS) {
+ log.warn(
+ "[{}] Ignoring ordered property. Could not convert property {} of type {} to type {} for path {}, message {}",
+ getIndexName(), pname,
+ Type.fromTag(property.getType().tag(), false),
+ Type.fromTag(tag, false), path, e.getMessage());
+ lastOrderedPropertyWarning = now;
+ }
+ }
+ if (unknownWarning) {
+ log.warn(
+ "[{}] Ignoring ordered property. Could not convert property {} of type {} to type {} for path {}",
+ getIndexName(), pname,
+ Type.fromTag(property.getType().tag(), false),
+ Type.fromTag(tag, false), path, e);
+ }
}
return fieldAdded;
}