Procházet zdrojové kódy

fix #1606 check highlight title lengh

Shinsuke Sugaya před 7 roky
rodič
revize
e218496af3

+ 2 - 2
src/main/java/org/codelibs/fess/helper/ViewHelper.java

@@ -148,10 +148,11 @@ public class ViewHelper {
 
 
     public String getContentTitle(final Map<String, Object> document) {
     public String getContentTitle(final Map<String, Object> document) {
         final FessConfig fessConfig = ComponentUtil.getFessConfig();
         final FessConfig fessConfig = ComponentUtil.getFessConfig();
+        final int size = fessConfig.getResponseMaxTitleLengthAsInteger();
         String title =
         String title =
                 DocumentUtil.getValue(document, ComponentUtil.getQueryHelper().getHighlightPrefix() + fessConfig.getIndexFieldTitle(),
                 DocumentUtil.getValue(document, ComponentUtil.getQueryHelper().getHighlightPrefix() + fessConfig.getIndexFieldTitle(),
                         String.class);
                         String.class);
-        if (StringUtil.isBlank(title)) {
+        if (StringUtil.isBlank(title) || title.length() > size - 3) {
             title = DocumentUtil.getValue(document, fessConfig.getIndexFieldTitle(), String.class);
             title = DocumentUtil.getValue(document, fessConfig.getIndexFieldTitle(), String.class);
             if (StringUtil.isBlank(title)) {
             if (StringUtil.isBlank(title)) {
                 title = DocumentUtil.getValue(document, fessConfig.getIndexFieldFilename(), String.class);
                 title = DocumentUtil.getValue(document, fessConfig.getIndexFieldFilename(), String.class);
@@ -163,7 +164,6 @@ public class ViewHelper {
         } else {
         } else {
             title = escapeHighlight(title).replaceAll("\\.\\.\\.$", StringUtil.EMPTY);
             title = escapeHighlight(title).replaceAll("\\.\\.\\.$", StringUtil.EMPTY);
         }
         }
-        final int size = fessConfig.getResponseMaxTitleLengthAsInteger();
         if (size > -1) {
         if (size > -1) {
             return StringUtils.abbreviate(title, size);
             return StringUtils.abbreviate(title, size);
         } else {
         } else {