瀏覽代碼

fix exception when starting job

Shinsuke Sugaya 9 年之前
父節點
當前提交
227db11ae2
共有 1 個文件被更改,包括 17 次插入14 次删除
  1. 17 14
      src/main/java/org/codelibs/fess/app/web/admin/scheduledjob/AdminScheduledjobAction.java

+ 17 - 14
src/main/java/org/codelibs/fess/app/web/admin/scheduledjob/AdminScheduledjobAction.java

@@ -32,6 +32,7 @@ import org.lastaflute.web.callback.ActionRuntime;
 import org.lastaflute.web.response.HtmlResponse;
 import org.lastaflute.web.response.render.RenderData;
 import org.lastaflute.web.token.TxToken;
+import org.lastaflute.web.util.LaRequestUtil;
 import org.lastaflute.web.validation.VaErrorHook;
 
 /**
@@ -52,8 +53,6 @@ public class AdminScheduledjobAction extends FessAdminAction {
     @Resource
     protected JobHelper jobHelper;
 
-    private boolean running = false;
-
     // ===================================================================================
     //                                                                               Hook
     //                                                                              ======
@@ -208,12 +207,13 @@ public class AdminScheduledjobAction extends FessAdminAction {
                 scheduledJobService.getScheduledJob(id).ifPresent(entity -> {
                     loadScheduledJob(form, entity);
                     form.crudMode = crudMode;
+                    LaRequestUtil.getOptionalRequest().ifPresent(request -> {
+                        request.setAttribute("running", entity.isRunning());
+                    });
                 }).orElse(() -> {
                     throwValidationError(messages -> messages.addErrorsCrudCouldNotFindCrudTable(GLOBAL, id), toEditHtml());
                 });
             });
-        }).renderWith(data -> {
-            data.register("running", running);
         });
     }
 
@@ -221,18 +221,14 @@ public class AdminScheduledjobAction extends FessAdminAction {
     public HtmlResponse confirmfromcreate(final CreateForm form) {
         validate(form, messages -> {}, toEditHtml());
         form.crudMode = CrudMode.CREATE;
-        return asHtml(path_AdminScheduledjob_ConfirmJsp).renderWith(data -> {
-            data.register("running", running);
-        });
+        return asHtml(path_AdminScheduledjob_ConfirmJsp);
     }
 
     @Execute(token = TxToken.VALIDATE_KEEP)
     public HtmlResponse confirmfromupdate(final EditForm form) {
         validate(form, messages -> {}, toEditHtml());
         form.crudMode = CrudMode.EDIT;
-        return asHtml(path_AdminScheduledjob_ConfirmJsp).renderWith(data -> {
-            data.register("running", running);
-        });
+        return asHtml(path_AdminScheduledjob_ConfirmJsp);
     }
 
     // -----------------------------------------------------
@@ -282,6 +278,8 @@ public class AdminScheduledjobAction extends FessAdminAction {
 
     @Execute
     public HtmlResponse start(final EditForm form) {
+        verifyCrudMode(form.crudMode, CrudMode.CONFIRM);
+        validate(form, messages -> {}, toEditHtml());
         final String id = form.id;
         scheduledJobService.getScheduledJob(id).ifPresent(entity -> {
             try {
@@ -293,14 +291,17 @@ public class AdminScheduledjobAction extends FessAdminAction {
                 }, toEditHtml());
             }
         }).orElse(() -> {
-            // TODO 
-            });
+            throwValidationError(messages -> {
+                messages.addErrorsFailedToStartJob(GLOBAL, id);
+            }, toEditHtml());
+        });
         return redirect(getClass());
     }
 
     @Execute
     public HtmlResponse stop(final EditForm form) {
         verifyCrudMode(form.crudMode, CrudMode.CONFIRM);
+        validate(form, messages -> {}, toEditHtml());
         final String id = form.id;
         scheduledJobService.getScheduledJob(id).ifPresent(entity -> {
             try {
@@ -313,8 +314,10 @@ public class AdminScheduledjobAction extends FessAdminAction {
                 }, toEditHtml());
             }
         }).orElse(() -> {
-            // TODO 
-            });
+            throwValidationError(messages -> {
+                messages.addErrorsFailedToStartJob(GLOBAL, id);
+            }, toEditHtml());
+        });
         return redirect(getClass());
     }