Manybubbles has uploaded a new change for review. https://gerrit.wikimedia.org/r/135021
Change subject: Fix MultiSegmenter when the offset gap is 0 ...................................................................... Fix MultiSegmenter when the offset gap is 0 This is pretty rare, but the randomized testing found it with at seed 4AB348D5E736BE9E:9930CF61AD110AEF. Change-Id: I2e40040677edde2893a8b7a0f869162ea2634d30 --- M experimental-highlighter-core/src/main/java/org/wikimedia/search/highlighter/experimental/snippet/MultiSegmenter.java M experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/MultiSegmenterTest.java 2 files changed, 7 insertions(+), 4 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/search/highlighter refs/changes/21/135021/1 diff --git a/experimental-highlighter-core/src/main/java/org/wikimedia/search/highlighter/experimental/snippet/MultiSegmenter.java b/experimental-highlighter-core/src/main/java/org/wikimedia/search/highlighter/experimental/snippet/MultiSegmenter.java index 0dbda69..72289d4 100644 --- a/experimental-highlighter-core/src/main/java/org/wikimedia/search/highlighter/experimental/snippet/MultiSegmenter.java +++ b/experimental-highlighter-core/src/main/java/org/wikimedia/search/highlighter/experimental/snippet/MultiSegmenter.java @@ -161,7 +161,10 @@ if (inSegmenterStartOffset < 0) { return findSegmenterBackwards(); } - assert segmenter != null; + if (segmenter == null) { + // Can happen if the first request didn't find anything. + return false; + } if (inSegmenterStartOffset >= segmenter.length) { inSegmenterStartOffset -= segmenter.length + offsetGap; lastStartOffset += segmenter.length + offsetGap; diff --git a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/MultiSegmenterTest.java b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/MultiSegmenterTest.java index ac77b06..00d7e53 100644 --- a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/MultiSegmenterTest.java +++ b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/MultiSegmenterTest.java @@ -7,8 +7,6 @@ import org.junit.runner.RunWith; import org.wikimedia.search.highlighter.experimental.Segmenter; import org.wikimedia.search.highlighter.experimental.SourceExtracter; -import org.wikimedia.search.highlighter.experimental.snippet.CharScanningSegmenter; -import org.wikimedia.search.highlighter.experimental.snippet.MultiSegmenter; import org.wikimedia.search.highlighter.experimental.source.StringMergingMultiSourceExtracter; import org.wikimedia.search.highlighter.experimental.source.StringSourceExtracter; @@ -59,7 +57,9 @@ assertTrue(segmenter.acceptable(offsetGap * 3, offsetGap * 3 + 1)); assertThat(segmenter.memo(offsetGap * 3, offsetGap * 3 + 1) .pickBounds(0, Integer.MAX_VALUE), extracted(extracter, equalTo("a"))); - assertFalse(segmenter.acceptable(0, 1)); + if (offsetGap > 0) { + assertFalse(segmenter.acceptable(0, 1)); + } assertFalse(segmenter.acceptable(offsetGap * 3, offsetGap * 3 + 3)); } -- To view, visit https://gerrit.wikimedia.org/r/135021 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2e40040677edde2893a8b7a0f869162ea2634d30 Gerrit-PatchSet: 1 Gerrit-Project: search/highlighter Gerrit-Branch: master Gerrit-Owner: Manybubbles <never...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits