From 56080ba5280c50e92d2077b9acf947ed1d317566 Mon Sep 17 00:00:00 2001
From: Shinsuke Sugaya <shinsuke@apache.org>
Date: Thu, 15 Mar 2018 22:11:35 +0900
Subject: [PATCH] fix #1566 improve form.num in session

---
 .../org/codelibs/fess/app/web/base/FessSearchAction.java | 9 +++++++++
 .../org/codelibs/fess/app/web/search/SearchAction.java   | 2 +-
 src/main/webapp/WEB-INF/view/searchOptions.jsp           | 2 +-
 3 files changed, 11 insertions(+), 2 deletions(-)

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 5dbf9000b..d73fff57c 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
@@ -25,6 +25,7 @@ import java.util.Set;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
 
 import org.apache.commons.text.StringEscapeUtils;
 import org.codelibs.core.lang.StringUtil;
@@ -144,6 +145,14 @@ public abstract class FessSearchAction extends FessBaseAction {
 
     protected void buildFormParams(final SearchForm form) {
 
+        final HttpSession session = request.getSession(false);
+        if (session != null) {
+            final Object resultsPerPage = session.getAttribute(Constants.RESULTS_PER_PAGE);
+            if (resultsPerPage instanceof Integer) {
+                form.num = (Integer) resultsPerPage;
+            }
+        }
+
         // label
         final List<Map<String, String>> labelTypeItems = labelTypeHelper.getLabelTypeItemList(SearchRequestType.SEARCH);
 
diff --git a/src/main/java/org/codelibs/fess/app/web/search/SearchAction.java b/src/main/java/org/codelibs/fess/app/web/search/SearchAction.java
index 5524ea9e5..aa08313dc 100644
--- a/src/main/java/org/codelibs/fess/app/web/search/SearchAction.java
+++ b/src/main/java/org/codelibs/fess/app/web/search/SearchAction.java
@@ -104,7 +104,7 @@ public class SearchAction extends FessSearchAction {
         if (viewHelper.isUseSession()) {
             LaRequestUtil.getOptionalRequest().ifPresent(request -> {
                 final HttpSession session = request.getSession(false);
-                if (session != null) {
+                if (session != null && form.num != null) {
                     session.setAttribute(Constants.RESULTS_PER_PAGE, form.num);
                 }
             });
diff --git a/src/main/webapp/WEB-INF/view/searchOptions.jsp b/src/main/webapp/WEB-INF/view/searchOptions.jsp
index 8985e2749..de7a78461 100755
--- a/src/main/webapp/WEB-INF/view/searchOptions.jsp
+++ b/src/main/webapp/WEB-INF/view/searchOptions.jsp
@@ -7,7 +7,7 @@
 		<label for="contentNum"><la:message key="labels.index_num" /></label>
 		<la:select property="num" styleId="numSearchOption"
 			styleClass="form-control">
-			<option value="">
+			<option value="10">
 				<la:message key="labels.search_result_select_num" />
 			</option>
 			<la:option value="10">10</la:option>
-- 
GitLab