Browse Source

fix #1251 load default values for search_log

Shinsuke Sugaya 7 years ago
parent
commit
97a19d96b6

+ 4 - 0
src/main/java/org/codelibs/fess/app/web/admin/backup/AdminBackupAction.java

@@ -218,6 +218,10 @@ public class AdminBackupAction extends FessAdminAction {
                 addToList(entity.getQueryTime(), list);
                 addToList(entity.getResponseTime(), list);
                 addToList(entity.getRequestedAt(), list);
+                entity.getSearchFieldLogList().stream().forEach(e -> {
+                    addToList(e.getFirst(), list);
+                    addToList(e.getSecond(), list);
+                });
                 try {
                     writer.writeValues(list);
                 } catch (final IOException e) {

+ 2 - 2
src/main/java/org/codelibs/fess/es/log/exbhv/SearchLogBhv.java

@@ -59,14 +59,14 @@ public class SearchLogBhv extends BsSearchLogBhv {
     @Override
     protected <RESULT extends SearchLog> RESULT createEntity(final Map<String, Object> source, final Class<? extends RESULT> entityType) {
         try {
-            final RESULT result = entityType.newInstance();
+            final RESULT result = super.createEntity(source, entityType);
             final Object searchFieldObj = source.get("searchField");
             if (searchFieldObj instanceof Map) {
                 ((Map<String, String>) searchFieldObj).entrySet().stream()
                         .forEach(e -> result.getSearchFieldLogList().add(new Pair(e.getKey(), e.getValue())));
             }
             return result;
-        } catch (InstantiationException | IllegalAccessException e) {
+        } catch (Exception e) {
             final String msg = "Cannot create a new instance: " + entityType.getName();
             throw new IllegalBehaviorStateException(msg, e);
         }