diff --git a/src/main/java/org/codelibs/fess/api/json/SearchApiManager.java b/src/main/java/org/codelibs/fess/api/json/SearchApiManager.java index da4e5b074..55871b4d0 100644 --- a/src/main/java/org/codelibs/fess/api/json/SearchApiManager.java +++ b/src/main/java/org/codelibs/fess/api/json/SearchApiManager.java @@ -124,7 +124,8 @@ public class SearchApiManager extends BaseApiManager { if (values.length > 5 && "favorite".equals(values[5])) { request.setAttribute(DOC_ID_FIELD, values[4]); return FormatType.FAVORITE; - } else if (values.length > 4 && "all".equals(values[4])) { + } + if (values.length > 4 && "all".equals(values[4])) { return FormatType.SCROLL; } return FormatType.SEARCH; diff --git a/src/main/java/org/codelibs/fess/app/service/FailureUrlService.java b/src/main/java/org/codelibs/fess/app/service/FailureUrlService.java index 7a8f8f70a..fc61a7882 100644 --- a/src/main/java/org/codelibs/fess/app/service/FailureUrlService.java +++ b/src/main/java/org/codelibs/fess/app/service/FailureUrlService.java @@ -15,13 +15,15 @@ */ package org.codelibs.fess.app.service; +import java.io.IOException; import java.io.PrintWriter; +import java.io.StringWriter; import java.util.List; import javax.annotation.Resource; -import org.apache.commons.io.output.StringBuilderWriter; -import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.codelibs.core.beans.util.BeanUtil; import org.codelibs.core.lang.StringUtil; import org.codelibs.fess.Constants; @@ -39,6 +41,8 @@ import org.dbflute.optional.OptionalEntity; public class FailureUrlService { + private static final Logger logger = LogManager.getLogger(FailureUrlService.class); + @Resource protected FailureUrlBhv failureUrlBhv; @@ -149,7 +153,7 @@ public class FailureUrlService { }); failureUrl.setErrorName(errorName); - failureUrl.setErrorLog(StringUtils.abbreviate(getStackTrace(e), 4000)); + failureUrl.setErrorLog(getStackTrace(e)); failureUrl.setLastAccessTime(ComponentUtil.getSystemHelper().getCurrentTimeAsLong()); failureUrl.setThreadName(Thread.currentThread().getName()); @@ -160,9 +164,13 @@ public class FailureUrlService { private String getStackTrace(final Throwable t) { final SystemHelper systemHelper = ComponentUtil.getSystemHelper(); - final StringBuilderWriter sw = new StringBuilderWriter(); - final PrintWriter pw = new PrintWriter(sw, true); - t.printStackTrace(pw); - return systemHelper.abbreviateLongText(sw.toString()); + try (final StringWriter sw = new StringWriter(); final PrintWriter pw = new PrintWriter(sw)) { + t.printStackTrace(pw); + pw.flush(); + return systemHelper.abbreviateLongText(sw.toString()); + } catch (final IOException e) { + logger.warn("Failed to print the stack trace {}", t.getMessage(), e); + } + return StringUtil.EMPTY; } } diff --git a/src/main/java/org/codelibs/fess/app/service/SearchLogService.java b/src/main/java/org/codelibs/fess/app/service/SearchLogService.java index 1729b13ed..be837ef6e 100644 --- a/src/main/java/org/codelibs/fess/app/service/SearchLogService.java +++ b/src/main/java/org/codelibs/fess/app/service/SearchLogService.java @@ -556,14 +556,14 @@ public class SearchLogService { } public void deleteSearchLog(final Object e) { - if (e instanceof ClickLog) { - clickLogBhv.delete((ClickLog) e); - } else if (e instanceof FavoriteLog) { - favoriteLogBhv.delete((FavoriteLog) e); - } else if (e instanceof UserInfo) { - userInfoBhv.delete((UserInfo) e); - } else if (e instanceof SearchLog) { - searchLogBhv.delete((SearchLog) e); + if (e instanceof final ClickLog clickLog) { + clickLogBhv.delete(clickLog); + } else if (e instanceof final FavoriteLog favoriteLog) { + favoriteLogBhv.delete(favoriteLog); + } else if (e instanceof final UserInfo userInfo) { + userInfoBhv.delete(userInfo); + } else if (e instanceof final SearchLog searchLog) { + searchLogBhv.delete(searchLog); } else { throw new FessSystemException("Unknown log entity: " + e); } diff --git a/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java b/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java index 363f10f34..45f07aa38 100644 --- a/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java +++ b/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java @@ -148,7 +148,7 @@ public abstract class AbstractFessFileTransformer extends AbstractTransformer im if (dt != null) { dataMap.put(mapping.getValue1(), FessFunctions.formatDate(dt)); } else { - logger.warn("Failed to parse {}", mapping.toString()); + logger.warn("Failed to parse {}", mapping); } } else { logger.warn("Unknown mapping type: {}={}", key, mapping); diff --git a/src/main/java/org/codelibs/fess/dict/DictionaryCreator.java b/src/main/java/org/codelibs/fess/dict/DictionaryCreator.java index 8f4bc6e85..51cc5107e 100644 --- a/src/main/java/org/codelibs/fess/dict/DictionaryCreator.java +++ b/src/main/java/org/codelibs/fess/dict/DictionaryCreator.java @@ -30,7 +30,7 @@ public abstract class DictionaryCreator { @Resource protected DictionaryManager dictionaryManager; - public DictionaryCreator(final String pattern) { + protected DictionaryCreator(final String pattern) { this.pattern = Pattern.compile(pattern); } diff --git a/src/main/java/org/codelibs/fess/dict/DictionaryFile.java b/src/main/java/org/codelibs/fess/dict/DictionaryFile.java index 9fb754ae2..f5a6f0d9f 100644 --- a/src/main/java/org/codelibs/fess/dict/DictionaryFile.java +++ b/src/main/java/org/codelibs/fess/dict/DictionaryFile.java @@ -38,7 +38,7 @@ public abstract class DictionaryFile { protected Date timestamp; - public DictionaryFile(final String id, final String path, final Date timestamp) { + protected DictionaryFile(final String id, final String path, final Date timestamp) { this.id = id; this.path = path; this.timestamp = timestamp; diff --git a/src/main/java/org/codelibs/fess/exception/InvalidQueryException.java b/src/main/java/org/codelibs/fess/exception/InvalidQueryException.java index 81994c059..7328435f5 100644 --- a/src/main/java/org/codelibs/fess/exception/InvalidQueryException.java +++ b/src/main/java/org/codelibs/fess/exception/InvalidQueryException.java @@ -22,7 +22,7 @@ public class InvalidQueryException extends FessSystemException { private static final long serialVersionUID = 1L; - private transient final VaMessenger messageCode; + private final transient VaMessenger messageCode; public InvalidQueryException(final VaMessenger messageCode, final String message, final Throwable cause) { super(message, cause); diff --git a/src/main/java/org/codelibs/fess/exception/SsoMessageException.java b/src/main/java/org/codelibs/fess/exception/SsoMessageException.java index aa32b1b24..41eb95941 100644 --- a/src/main/java/org/codelibs/fess/exception/SsoMessageException.java +++ b/src/main/java/org/codelibs/fess/exception/SsoMessageException.java @@ -22,7 +22,7 @@ public class SsoMessageException extends FessSystemException { private static final long serialVersionUID = 1L; - private transient final VaMessenger messageCode; + private final transient VaMessenger messageCode; public SsoMessageException(final VaMessenger messageCode, final String message, final Throwable cause) { super(message, cause); diff --git a/src/main/java/org/codelibs/fess/exec/Crawler.java b/src/main/java/org/codelibs/fess/exec/Crawler.java index fb35d98e8..b5496e22b 100644 --- a/src/main/java/org/codelibs/fess/exec/Crawler.java +++ b/src/main/java/org/codelibs/fess/exec/Crawler.java @@ -377,7 +377,9 @@ public class Crawler { } buf.append(entry.getKey()).append('=').append(entry.getValue()); } - logger.info("[CRAWL INFO] {}", buf.toString()); + if (logger.isInfoEnabled()) { + logger.info("[CRAWL INFO] {}", buf); + } // notification try { diff --git a/src/main/java/org/codelibs/fess/job/PurgeDocJob.java b/src/main/java/org/codelibs/fess/job/PurgeDocJob.java index 174c39edd..56a5977a9 100644 --- a/src/main/java/org/codelibs/fess/job/PurgeDocJob.java +++ b/src/main/java/org/codelibs/fess/job/PurgeDocJob.java @@ -39,7 +39,7 @@ public class PurgeDocJob { searchEngineClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), queryBuilder); } catch (final Exception e) { - logger.error("Could not delete expired documents: {}", queryBuilder.toString(), e); + logger.error("Could not delete expired documents: {}", queryBuilder, e); resultBuf.append(e.getMessage()).append("\n"); } diff --git a/src/main/java/org/codelibs/fess/ldap/LdapManager.java b/src/main/java/org/codelibs/fess/ldap/LdapManager.java index bf9dac41c..6ace4239a 100644 --- a/src/main/java/org/codelibs/fess/ldap/LdapManager.java +++ b/src/main/java/org/codelibs/fess/ldap/LdapManager.java @@ -139,7 +139,7 @@ public class LdapManager { try (DirContextHolder holder = getDirContext(() -> env)) { final DirContext context = holder.get(); if (logger.isDebugEnabled()) { - logger.debug("Logged in as Bind DN.", context); + logger.debug("Logged in as Bind DN. {}", context); } isBind = true; } catch (final Exception e) { @@ -186,7 +186,7 @@ public class LdapManager { return OptionalEntity.empty(); } if (logger.isDebugEnabled()) { - logger.debug("Logged in.", context); + logger.debug("Logged in. {}", context); } return OptionalEntity.of(ldapUser); } catch (final Exception e) { diff --git a/src/main/java/org/codelibs/fess/query/TermQueryCommand.java b/src/main/java/org/codelibs/fess/query/TermQueryCommand.java index 1767afb5b..59f5cbeb2 100644 --- a/src/main/java/org/codelibs/fess/query/TermQueryCommand.java +++ b/src/main/java/org/codelibs/fess/query/TermQueryCommand.java @@ -138,10 +138,13 @@ public class TermQueryCommand extends QueryCommand { messages -> messages.addErrorsInvalidQueryUnsupportedSortField(UserMessages.GLOBAL_PROPERTY_KEY, sortField), "Unsupported sort field: " + termQuery); } - SortOrder sortOrder; + final SortOrder sortOrder; if (values.length == 2) { - sortOrder = SortOrder.DESC.toString().equalsIgnoreCase(values[1]) ? SortOrder.DESC : SortOrder.ASC; - if (sortOrder == null) { + if (SortOrder.DESC.toString().equalsIgnoreCase(values[1])) { + sortOrder = SortOrder.DESC; + } else if (SortOrder.ASC.toString().equalsIgnoreCase(values[1])) { + sortOrder = SortOrder.ASC; + } else { throw new InvalidQueryException( messages -> messages.addErrorsInvalidQueryUnsupportedSortOrder(UserMessages.GLOBAL_PROPERTY_KEY, values[1]), "Invalid sort order: " + termQuery); diff --git a/src/main/java/org/codelibs/fess/sso/oic/OpenIdConnectAuthenticator.java b/src/main/java/org/codelibs/fess/sso/oic/OpenIdConnectAuthenticator.java index e1f8b37c2..8e7234fc3 100644 --- a/src/main/java/org/codelibs/fess/sso/oic/OpenIdConnectAuthenticator.java +++ b/src/main/java/org/codelibs/fess/sso/oic/OpenIdConnectAuthenticator.java @@ -211,6 +211,8 @@ public class OpenIdConnectAuthenticator implements SsoAuthenticator { } attributes.put("groups", list.toArray(new String[list.size()])); break; + default: + break; } } } diff --git a/src/main/java/org/codelibs/fess/timer/HotThreadMonitorTarget.java b/src/main/java/org/codelibs/fess/timer/HotThreadMonitorTarget.java index e14f67000..d9e605b92 100644 --- a/src/main/java/org/codelibs/fess/timer/HotThreadMonitorTarget.java +++ b/src/main/java/org/codelibs/fess/timer/HotThreadMonitorTarget.java @@ -64,7 +64,9 @@ public class HotThreadMonitorTarget extends MonitorTarget { appendTimestamp(buf); buf.append('}'); - logger.info(buf.toString()); + if (logger.isInfoEnabled()) { + logger.info(buf.toString()); + } } } diff --git a/src/main/java/org/codelibs/fess/timer/SystemMonitorTarget.java b/src/main/java/org/codelibs/fess/timer/SystemMonitorTarget.java index 49517fea1..92b435233 100644 --- a/src/main/java/org/codelibs/fess/timer/SystemMonitorTarget.java +++ b/src/main/java/org/codelibs/fess/timer/SystemMonitorTarget.java @@ -59,7 +59,9 @@ public class SystemMonitorTarget extends MonitorTarget { appendTimestamp(buf); buf.append('}'); - logger.info(buf.toString()); + if (logger.isInfoEnabled()) { + logger.info(buf.toString()); + } } private void appendJvmStats(final StringBuilder buf) { diff --git a/src/main/java/org/codelibs/fess/tomcat/webresources/FessWebResourceRoot.java b/src/main/java/org/codelibs/fess/tomcat/webresources/FessWebResourceRoot.java index d832fbb23..bcd25c5fe 100644 --- a/src/main/java/org/codelibs/fess/tomcat/webresources/FessWebResourceRoot.java +++ b/src/main/java/org/codelibs/fess/tomcat/webresources/FessWebResourceRoot.java @@ -51,7 +51,10 @@ public class FessWebResourceRoot extends StandardRoot { } } } catch (final Exception e) { - logger.log(Level.WARNING, "Failed to read " + possibleJar, e); + logger.log(Level.WARNING, e, () -> { + final String canonicalPath = possibleJar.getCanonicalPath(); + return "Failed to read " + canonicalPath; + }); } } } diff --git a/src/test/java/org/codelibs/fess/helper/QueryHelperTest.java b/src/test/java/org/codelibs/fess/helper/QueryHelperTest.java index 582865b4f..7aa47963e 100644 --- a/src/test/java/org/codelibs/fess/helper/QueryHelperTest.java +++ b/src/test/java/org/codelibs/fess/helper/QueryHelperTest.java @@ -317,10 +317,12 @@ public class QueryHelperTest extends UnitFessTestCase { "{\"timestamp\":{\"order\":\"desc\"}}{\"last_modified\":{\"order\":\"desc\"}}", // buildQuery("sort:timestamp.desc sort:last_modified.desc")); - assertQueryContext(query, Map.of(), // - Set.of(), // - "{\"timestamp\":{\"order\":\"asc\"}}", // - buildQuery("sort:timestamp.xxx")); + try { + buildQuery("sort:timestamp.xxx"); + fail(); + } catch (InvalidQueryException e) { + // ok + } try { buildQuery("sort:aaa");