From f3ce6e80794ff3a234dbd8850c8501abda95cedb Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 11 Jul 2012 17:14:30 -0400 Subject: [PATCH] Fixes and adjustments to test suite --- src/com/gitblit/LuceneExecutor.java | 14 +++++++++----- 1 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/com/gitblit/LuceneExecutor.java b/src/com/gitblit/LuceneExecutor.java index b316543..c702dcc 100644 --- a/src/com/gitblit/LuceneExecutor.java +++ b/src/com/gitblit/LuceneExecutor.java @@ -105,7 +105,7 @@ public class LuceneExecutor implements Runnable { - private static final int INDEX_VERSION = 2; + private static final int INDEX_VERSION = 3; private static final String FIELD_OBJECT_TYPE = "type"; private static final String FIELD_ISSUE = "issue"; @@ -1205,7 +1205,13 @@ return "<pre class=\"text\">" + StringUtils.escapeForHtml(fragment, true) + "</pre>"; } - int contentPos = 0; + // make sure we have unique fragments + Set<String> uniqueFragments = new LinkedHashSet<String>(); + for (String fragment : fragments) { + uniqueFragments.add(fragment); + } + fragments = uniqueFragments.toArray(new String[uniqueFragments.size()]); + StringBuilder sb = new StringBuilder(); for (int i = 0, len = fragments.length; i < len; i++) { String fragment = fragments[i]; @@ -1215,7 +1221,7 @@ String raw = fragment.replace(termTag, "").replace(termTagEnd, ""); // determine position of the raw fragment in the content - int pos = content.indexOf(raw, contentPos); + int pos = content.indexOf(raw); // restore complete first line of fragment int c = pos; @@ -1243,8 +1249,6 @@ } tag = MessageFormat.format("<pre class=\"prettyprint linenums:{0,number,0}{1}\">", line, lang); - // update offset into content - contentPos = pos + raw.length() + 1; } sb.append(tag); -- Gitblit v1.9.1