Browse Source

fix #394 : delete request header setting when deleting web config

Shinsuke Sugaya 9 years ago
parent
commit
9e89130a88

+ 8 - 0
src/main/java/org/codelibs/fess/app/service/WebConfigService.java

@@ -25,6 +25,7 @@ import org.codelibs.core.beans.util.BeanUtil;
 import org.codelibs.fess.Constants;
 import org.codelibs.fess.Constants;
 import org.codelibs.fess.app.pager.WebConfigPager;
 import org.codelibs.fess.app.pager.WebConfigPager;
 import org.codelibs.fess.es.config.cbean.WebConfigCB;
 import org.codelibs.fess.es.config.cbean.WebConfigCB;
+import org.codelibs.fess.es.config.exbhv.RequestHeaderBhv;
 import org.codelibs.fess.es.config.exbhv.WebAuthenticationBhv;
 import org.codelibs.fess.es.config.exbhv.WebAuthenticationBhv;
 import org.codelibs.fess.es.config.exbhv.WebConfigBhv;
 import org.codelibs.fess.es.config.exbhv.WebConfigBhv;
 import org.codelibs.fess.es.config.exbhv.WebConfigToLabelBhv;
 import org.codelibs.fess.es.config.exbhv.WebConfigToLabelBhv;
@@ -51,6 +52,9 @@ public class WebConfigService implements Serializable {
     @Resource
     @Resource
     protected WebAuthenticationBhv webAuthenticationBhv;
     protected WebAuthenticationBhv webAuthenticationBhv;
 
 
+    @Resource
+    protected RequestHeaderBhv requestHeaderBhv;
+
     public List<WebConfig> getWebConfigList(final WebConfigPager webConfigPager) {
     public List<WebConfig> getWebConfigList(final WebConfigPager webConfigPager) {
 
 
         final PagingResultBean<WebConfig> webConfigList = webConfigBhv.selectPage(cb -> {
         final PagingResultBean<WebConfig> webConfigList = webConfigBhv.selectPage(cb -> {
@@ -86,6 +90,10 @@ public class WebConfigService implements Serializable {
         webAuthenticationBhv.queryDelete(cb -> {
         webAuthenticationBhv.queryDelete(cb -> {
             cb.query().setWebConfigId_Equal(webConfigId);
             cb.query().setWebConfigId_Equal(webConfigId);
         });
         });
+
+        requestHeaderBhv.queryDelete(cb -> {
+            cb.query().setWebConfigId_Equal(webConfigId);
+        });
     }
     }
 
 
     public List<WebConfig> getAllWebConfigList() {
     public List<WebConfig> getAllWebConfigList() {

+ 10 - 1
src/main/java/org/codelibs/fess/es/config/exentity/RequestHeader.java

@@ -18,6 +18,8 @@ package org.codelibs.fess.es.config.exentity;
 import org.codelibs.fess.app.service.WebConfigService;
 import org.codelibs.fess.app.service.WebConfigService;
 import org.codelibs.fess.es.config.bsentity.BsRequestHeader;
 import org.codelibs.fess.es.config.bsentity.BsRequestHeader;
 import org.codelibs.fess.util.ComponentUtil;
 import org.codelibs.fess.util.ComponentUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 /**
 /**
  * @author FreeGen
  * @author FreeGen
@@ -25,6 +27,9 @@ import org.codelibs.fess.util.ComponentUtil;
 public class RequestHeader extends BsRequestHeader {
 public class RequestHeader extends BsRequestHeader {
 
 
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
+
+    private static final Logger logger = LoggerFactory.getLogger(RequestHeader.class);
+
     private WebConfig webConfig;
     private WebConfig webConfig;
 
 
     public String getId() {
     public String getId() {
@@ -50,7 +55,11 @@ public class RequestHeader extends BsRequestHeader {
     public WebConfig getWebConfig() {
     public WebConfig getWebConfig() {
         if (webConfig == null) {
         if (webConfig == null) {
             final WebConfigService webConfigService = ComponentUtil.getComponent(WebConfigService.class);
             final WebConfigService webConfigService = ComponentUtil.getComponent(WebConfigService.class);
-            webConfig = webConfigService.getWebConfig(getWebConfigId()).get();
+            try {
+                webConfig = webConfigService.getWebConfig(getWebConfigId()).get();
+            } catch (Exception e) {
+                logger.warn("Web Config " + getWebConfigId() + " does not exist.", e);
+            }
         }
         }
         return webConfig;
         return webConfig;
     }
     }