Skip to content

Commit 532bef5

Browse files
author
Anton Hosgood
committed
feat: silence logs per property
1 parent 1080a44 commit 532bef5

File tree

1 file changed

+12
-15
lines changed

1 file changed

+12
-15
lines changed

oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/editor/FulltextDocumentMaker.java

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040

4141
import javax.jcr.PropertyType;
4242
import java.io.IOException;
43-
import java.time.Duration;
4443
import java.util.Arrays;
4544
import java.util.List;
4645
import java.util.Map;
@@ -61,8 +60,7 @@ public abstract class FulltextDocumentMaker<D> implements DocumentMaker<D> {
6160

6261
private final Logger log = LoggerFactory.getLogger(getClass());
6362

64-
private static final LogSilencer LOG_SILENCER = new LogSilencer(Duration.ofMinutes(1).toMillis(), 4);
65-
private static final String LOG_KEY_TAG_LENGTH_EXCEEDED = "Tag length exceeded";
63+
private static final LogSilencer LOG_SILENCER = new LogSilencer();
6664

6765
public static final String WARN_LOG_STRING_SIZE_THRESHOLD_KEY = "oak.repository.property.index.logWarnStringSizeThreshold";
6866
private static final int DEFAULT_WARN_LOG_STRING_SIZE_THRESHOLD_VALUE = 102400;
@@ -350,8 +348,11 @@ private boolean indexProperty(String path,
350348
}
351349
if (pd.similarityTags) {
352350
String value = property.getValue(Type.STRING);
353-
if (isTagWithinLengthLimit(value, pname, true)) {
351+
if (isTagWithinLengthLimit(value)) {
354352
dirty |= indexSimilarityTag(doc, value);
353+
} else if (!LOG_SILENCER.silence(pname)) {
354+
log.warn("[{}] Skipping similarity tag for property {}. Value length {} exceeds maximum allowed length",
355+
getIndexName(), pname, value.length());
355356
}
356357
}
357358

@@ -713,7 +714,11 @@ protected boolean indexDynamicBoost(D doc, String propertyName, String nodeName,
713714
continue;
714715
}
715716
String dynaTagValue = p.getValue(Type.STRING);
716-
if (!isTagWithinLengthLimit(dynaTagValue, p.getName(), false)) {
717+
if (!isTagWithinLengthLimit(dynaTagValue)) {
718+
if (!LOG_SILENCER.silence(p.getName())) {
719+
log.warn("[{}] Skipping dynamic boost tag for property {}. Value length {} exceeds maximum allowed length",
720+
getIndexName(), p.getName(), dynaTagValue.length());
721+
}
717722
continue;
718723
}
719724
p = dynaTag.getProperty(DYNAMIC_BOOST_TAG_CONFIDENCE);
@@ -748,17 +753,9 @@ protected String getIndexName() {
748753
return definition.getIndexName();
749754
}
750755

751-
private boolean isTagWithinLengthLimit(String value, String pname, boolean isSimilarityTag) {
756+
private boolean isTagWithinLengthLimit(String value) {
752757
int maxLength = definition.getMaxTagLength();
753-
if (maxLength < 0 || value.length() <= maxLength) {
754-
return true;
755-
}
756-
if (!LOG_SILENCER.silence(LOG_KEY_TAG_LENGTH_EXCEEDED)) {
757-
String tagType = isSimilarityTag ? "similarity tag" : "dynamic boost tag";
758-
log.warn("[{}] Skipping {} for property {}. Value length {} exceeds maximum allowed length {}",
759-
getIndexName(), tagType, pname, value.length(), maxLength);
760-
}
761-
return false;
758+
return maxLength < 0 || value.length() <= maxLength;
762759
}
763760

764761
/*

0 commit comments

Comments
 (0)