diff --git a/src/main/java/org/codelibs/fess/app/web/base/FessSearchAction.java b/src/main/java/org/codelibs/fess/app/web/base/FessSearchAction.java index 1cb349604..ddc1b1364 100644 --- a/src/main/java/org/codelibs/fess/app/web/base/FessSearchAction.java +++ b/src/main/java/org/codelibs/fess/app/web/base/FessSearchAction.java @@ -104,7 +104,6 @@ public abstract class FessSearchAction extends FessBaseAction { protected void setupHtmlData(final ActionRuntime runtime) { super.setupHtmlData(runtime); runtime.registerData("osddLink", openSearchHelper.hasOpenSearchFile()); - runtime.registerData("helpPage", viewHelper.getPagePath("common/help")); final List> labelTypeItems = labelTypeHelper.getLabelTypeItemList(); runtime.registerData("labelTypeItems", labelTypeItems); diff --git a/src/main/java/org/codelibs/fess/app/web/help/HelpAction.java b/src/main/java/org/codelibs/fess/app/web/help/HelpAction.java index 2ea8e559b..b8239e84f 100644 --- a/src/main/java/org/codelibs/fess/app/web/help/HelpAction.java +++ b/src/main/java/org/codelibs/fess/app/web/help/HelpAction.java @@ -46,6 +46,7 @@ public class HelpAction extends FessSearchAction { }); }).renderWith(data -> { buildInitParams(); + data.register("helpPage", viewHelper.getPagePath("common/help")); }); } diff --git a/src/main/java/org/codelibs/fess/app/web/osdd/OsddAction.java b/src/main/java/org/codelibs/fess/app/web/osdd/OsddAction.java index 03baefca2..7866aa8f0 100644 --- a/src/main/java/org/codelibs/fess/app/web/osdd/OsddAction.java +++ b/src/main/java/org/codelibs/fess/app/web/osdd/OsddAction.java @@ -17,8 +17,7 @@ package org.codelibs.fess.app.web.osdd; import org.codelibs.fess.app.web.base.FessSearchAction; import org.lastaflute.web.Execute; -import org.lastaflute.web.response.HtmlResponse; -import org.lastaflute.web.util.LaResponseUtil; +import org.lastaflute.web.response.StreamResponse; public class OsddAction extends FessSearchAction { @@ -39,10 +38,9 @@ public class OsddAction extends FessSearchAction { // ============== @Execute - public HtmlResponse index() { + public StreamResponse index() { searchAvailable(); - openSearchHelper.write(LaResponseUtil.getResponse()); - return null; + return openSearchHelper.asStream(); } } \ No newline at end of file diff --git a/src/main/java/org/codelibs/fess/helper/OpenSearchHelper.java b/src/main/java/org/codelibs/fess/helper/OpenSearchHelper.java index c7fdf6840..0356f081d 100644 --- a/src/main/java/org/codelibs/fess/helper/OpenSearchHelper.java +++ b/src/main/java/org/codelibs/fess/helper/OpenSearchHelper.java @@ -16,17 +16,15 @@ package org.codelibs.fess.helper; import java.io.File; -import java.io.IOException; +import java.io.FileInputStream; +import java.io.InputStream; import javax.annotation.PostConstruct; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletResponse; -import org.apache.commons.io.IOUtils; -import org.codelibs.core.io.FileUtil; import org.codelibs.core.lang.StringUtil; import org.codelibs.fess.Constants; -import org.codelibs.fess.exception.FessSystemException; +import org.lastaflute.web.exception.ForcedRequest404NotFoundException; +import org.lastaflute.web.response.StreamResponse; import org.lastaflute.web.util.LaServletContextUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -67,21 +65,15 @@ public class OpenSearchHelper { return osddFile != null; } - public void write(final HttpServletResponse response) { + public StreamResponse asStream() { if (osddFile == null) { - throw new FessSystemException("Unsupported OpenSearch response."); - } - - response.setContentType(contentType + "; charset=" + encoding); - ServletOutputStream os = null; - try { - os = response.getOutputStream(); - os.write(FileUtil.readBytes(osddFile)); - } catch (final IOException e) { - throw new FessSystemException("Failed to write OpenSearch response.", e); - } finally { - IOUtils.closeQuietly(os); + throw new ForcedRequest404NotFoundException("Unsupported OpenSearch response."); } + return new StreamResponse(osddFile.getName()).contentType(contentType + "; charset=" + encoding).stream(out -> { + try (InputStream ins = new FileInputStream(osddFile)) { + out.write(ins); + } + }); } } diff --git a/src/main/webapp/WEB-INF/view/common/help.jsp b/src/main/webapp/WEB-INF/view/common/help.jsp index 81c9a8a0d..867d7337f 100755 --- a/src/main/webapp/WEB-INF/view/common/help.jsp +++ b/src/main/webapp/WEB-INF/view/common/help.jsp @@ -72,7 +72,7 @@
Add To Browser Search Engines
- Click here + Click here to add a search engine list for your browser.
diff --git a/src/main/webapp/WEB-INF/view/common/help_ja.jsp b/src/main/webapp/WEB-INF/view/common/help_ja.jsp index f487828b7..6420aecaa 100755 --- a/src/main/webapp/WEB-INF/view/common/help_ja.jsp +++ b/src/main/webapp/WEB-INF/view/common/help_ja.jsp @@ -70,7 +70,7 @@
ブラウザの検索エンジンに追加
ご利用のブラウザの検索エンジン一覧に追加するためには - ここをクリックしてください。 + ここをクリックしてください。