Переглянути джерело

#25 store a job log if job is started

Shinsuke Sugaya 11 роки тому
батько
коміт
7621cf5a9e
47 змінених файлів з 91 додано та 72 видалено
  1. 1 1
      src/main/config/h2/fess.ddl
  2. 1 1
      src/main/config/mysql/fess.ddl
  3. 1 1
      src/main/config/oracle/fess.ddl
  4. 0 1
      src/main/java/jp/sf/fess/crud/form/admin/BsJobLogForm.java
  5. 0 3
      src/main/java/jp/sf/fess/crud/pager/BsJobLogPager.java
  6. 5 5
      src/main/java/jp/sf/fess/db/bsentity/BsJobLog.java
  7. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/BrowserTypeDbm.java
  8. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/ClickLogDbm.java
  9. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/CrawlingSessionDbm.java
  10. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/CrawlingSessionInfoDbm.java
  11. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/DataConfigToBrowserTypeMappingDbm.java
  12. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/DataConfigToLabelTypeMappingDbm.java
  13. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/DataConfigToRoleTypeMappingDbm.java
  14. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/DataCrawlingConfigDbm.java
  15. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/FailureUrlDbm.java
  16. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/FavoriteLogDbm.java
  17. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/FileAuthenticationDbm.java
  18. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/FileConfigToBrowserTypeMappingDbm.java
  19. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/FileConfigToLabelTypeMappingDbm.java
  20. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/FileConfigToRoleTypeMappingDbm.java
  21. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/FileCrawlingConfigDbm.java
  22. 2 2
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/JobLogDbm.java
  23. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/LabelTypeDbm.java
  24. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/LabelTypeToRoleTypeMappingDbm.java
  25. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/OverlappingHostDbm.java
  26. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/PathMappingDbm.java
  27. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/RequestHeaderDbm.java
  28. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/RoleTypeDbm.java
  29. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/ScheduledJobDbm.java
  30. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/SearchFieldLogDbm.java
  31. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/SearchLogDbm.java
  32. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/UserInfoDbm.java
  33. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/WebAuthenticationDbm.java
  34. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/WebConfigToBrowserTypeMappingDbm.java
  35. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/WebConfigToLabelTypeMappingDbm.java
  36. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/WebConfigToRoleTypeMappingDbm.java
  37. 1 1
      src/main/java/jp/sf/fess/db/bsentity/dbmeta/WebCrawlingConfigDbm.java
  38. 1 1
      src/main/java/jp/sf/fess/db/cbean/bs/BsJobLogCB.java
  39. 23 7
      src/main/java/jp/sf/fess/db/cbean/cq/bs/AbstractBsJobLogCQ.java
  40. 2 2
      src/main/java/jp/sf/fess/db/cbean/cq/bs/BsJobLogCQ.java
  41. 1 0
      src/main/java/jp/sf/fess/db/exentity/FileCrawlingConfig.java
  42. 1 1
      src/main/java/jp/sf/fess/db/exentity/ScheduledJob.java
  43. 2 2
      src/main/java/jp/sf/fess/db/exentity/WebCrawlingConfig.java
  44. 6 5
      src/main/java/jp/sf/fess/helper/SystemHelper.java
  45. 11 9
      src/main/java/jp/sf/fess/job/TriggeredJob.java
  46. BIN
      src/main/webapp/WEB-INF/db/fess.h2.db
  47. 4 1
      src/main/webapp/WEB-INF/view/admin/jobLog/index.jsp

+ 1 - 1
src/main/config/h2/fess.ddl

@@ -161,7 +161,7 @@ CREATE TABLE JOB_LOG(
   SCRIPT_DATA VARCHAR(4000),
   SCRIPT_RESULT VARCHAR(4000),
   START_TIME TIMESTAMP NOT NULL,
-  END_TIME TIMESTAMP NOT NULL
+  END_TIME TIMESTAMP
 );
 
 /**********************************/

+ 1 - 1
src/main/config/mysql/fess.ddl

@@ -161,7 +161,7 @@ CREATE TABLE JOB_LOG(
   SCRIPT_DATA TEXT,
   SCRIPT_RESULT TEXT,
   START_TIME TIMESTAMP NOT NULL,
-  END_TIME TIMESTAMP NOT NULL
+  END_TIME TIMESTAMP
 );
 
 /**********************************/

+ 1 - 1
src/main/config/oracle/fess.ddl

@@ -184,7 +184,7 @@ CREATE TABLE "JOB_LOG"(
   "SCRIPT_DATA" VARCHAR2(4000),
   "SCRIPT_RESULT" VARCHAR2(4000),
   "START_TIME" TIMESTAMP NOT NULL,
-  "END_TIME" TIMESTAMP NOT NULL,
+  "END_TIME" TIMESTAMP,
 
   CONSTRAINT "JOB_LOG_PK" PRIMARY KEY ("ID") ENABLE
 );

+ 0 - 1
src/main/java/jp/sf/fess/crud/form/admin/BsJobLogForm.java

@@ -63,7 +63,6 @@ public abstract class BsJobLogForm {
     @DateType(datePattern = Constants.DEFAULT_DATETIME_FORMAT)
     public String startTime;
 
-    @Required(target = "confirmfromcreate,create,confirmfromupdate,update,delete")
     @DateType(datePattern = Constants.DEFAULT_DATETIME_FORMAT)
     public String endTime;
 

+ 0 - 3
src/main/java/jp/sf/fess/crud/pager/BsJobLogPager.java

@@ -52,8 +52,6 @@ public abstract class BsJobLogPager implements Serializable {
 
     public String startTime;
 
-    public String endTime;
-
     public void clear() {
         pageSize = getDefaultPageSize();
         currentPageNumber = getDefaultCurrentPageNumber();
@@ -64,7 +62,6 @@ public abstract class BsJobLogPager implements Serializable {
         target = null;
         scriptType = null;
         startTime = null;
-        endTime = null;
 
     }
 

+ 5 - 5
src/main/java/jp/sf/fess/db/bsentity/BsJobLog.java

@@ -119,7 +119,7 @@ public abstract class BsJobLog implements Entity, Serializable, Cloneable {
     /** START_TIME: {NotNull, TIMESTAMP(23, 10)} */
     protected java.sql.Timestamp _startTime;
 
-    /** END_TIME: {NotNull, TIMESTAMP(23, 10)} */
+    /** END_TIME: {TIMESTAMP(23, 10)} */
     protected java.sql.Timestamp _endTime;
 
     // -----------------------------------------------------
@@ -478,16 +478,16 @@ public abstract class BsJobLog implements Entity, Serializable, Cloneable {
     }
 
     /**
-     * [get] END_TIME: {NotNull, TIMESTAMP(23, 10)} <br />
-     * @return The value of the column 'END_TIME'. (basically NotNull if selected: for the constraint)
+     * [get] END_TIME: {TIMESTAMP(23, 10)} <br />
+     * @return The value of the column 'END_TIME'. (NullAllowed even if selected: for no constraint)
      */
     public java.sql.Timestamp getEndTime() {
         return _endTime;
     }
 
     /**
-     * [set] END_TIME: {NotNull, TIMESTAMP(23, 10)} <br />
-     * @param endTime The value of the column 'END_TIME'. (basically NotNull if update: for the constraint)
+     * [set] END_TIME: {TIMESTAMP(23, 10)} <br />
+     * @param endTime The value of the column 'END_TIME'. (NullAllowed: null update allowed for no constraint)
      */
     public void setEndTime(final java.sql.Timestamp endTime) {
         __modifiedProperties.addPropertyName("endTime");

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/BrowserTypeDbm.java

@@ -258,7 +258,7 @@ public class BrowserTypeDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_EBDC25E9_E237_4A91_ADD3_FA6F8CA7AB23",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_D41CA918_16A9_416B_B647_2C87A057862D",
             false,
             null,
             null,

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/ClickLogDbm.java

@@ -167,7 +167,7 @@ public class ClickLogDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_8853B179_F4EC_48B8_B723_8B61F13419D4",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_5784FA0C_8F21_45C1_8BC0_0B77795C1FDD",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnSearchId = cci("SEARCH_ID", "SEARCH_ID",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/CrawlingSessionDbm.java

@@ -180,7 +180,7 @@ public class CrawlingSessionDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_1A4E45FC_6AD7_4BDF_A764_207DD200D40E",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_1A924665_7570_4B11_9238_780D8838302B",
             false, null, null, null, "crawlingSessionInfoList", null);
 
     protected final ColumnInfo _columnSessionId = cci("SESSION_ID",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/CrawlingSessionInfoDbm.java

@@ -180,7 +180,7 @@ public class CrawlingSessionInfoDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_C4E8F6CF_7747_4C35_820B_0A2E3DF42FB4",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_7F2CE21E_C25C_4598_82C4_A1009DD96CFC",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnCrawlingSessionId = cci(

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/DataConfigToBrowserTypeMappingDbm.java

@@ -154,7 +154,7 @@ public class DataConfigToBrowserTypeMappingDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_2B76FBE0_224F_4AD1_85FD_41B4C9AEDC31",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_E5B07DE6_C536_40E4_8F72_E39704B418C4",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnDataConfigId = cci("DATA_CONFIG_ID",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/DataConfigToLabelTypeMappingDbm.java

@@ -154,7 +154,7 @@ public class DataConfigToLabelTypeMappingDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_DC8C6B08_CE09_4FA8_9584_365B3ABDD21E",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_A3F5F83E_2B8A_46F0_9F23_E925931DB082",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnDataConfigId = cci("DATA_CONFIG_ID",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/DataConfigToRoleTypeMappingDbm.java

@@ -154,7 +154,7 @@ public class DataConfigToRoleTypeMappingDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_5D1DDC67_A01C_4D73_9966_2486CC81B2CC",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_78F3C3A4_FF01_4ECF_A193_4224C74B27FB",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnDataConfigId = cci("DATA_CONFIG_ID",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/DataCrawlingConfigDbm.java

@@ -310,7 +310,7 @@ public class DataCrawlingConfigDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_CB77D9E9_35C6_4617_884E_D73D1D655F32",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_0B9D5A74_12B9_4AC0_833B_E3638BFF6024",
             false,
             null,
             null,

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/FailureUrlDbm.java

@@ -232,7 +232,7 @@ public class FailureUrlDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_6F44BF79_8635_4FF9_A6E6_A1F2D36263E8",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_4A115054_9480_4EE9_86AB_7EAEF962B3A2",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnUrl = cci("URL", "URL", null, null, true,

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/FavoriteLogDbm.java

@@ -167,7 +167,7 @@ public class FavoriteLogDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_781CB0AD_8431_4352_A1D6_A35937B0FA17",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_3E627B17_3EF8_4744_8F04_99A388F9A905",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnUserId = cci("USER_ID", "USER_ID", null,

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/FileAuthenticationDbm.java

@@ -310,7 +310,7 @@ public class FileAuthenticationDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_2699B42A_0BB3_41FF_BFB5_AF81A30D0A01",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_0DE6A197_6735_4CA5_99EE_3DC42CD9A8E2",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnHostname = cci("HOSTNAME", "HOSTNAME",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/FileConfigToBrowserTypeMappingDbm.java

@@ -154,7 +154,7 @@ public class FileConfigToBrowserTypeMappingDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_C8E02221_2BEB_4A3C_9661_552840233488",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_B0BC0334_9EC5_475D_8E3A_B367C4A2E669",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnFileConfigId = cci("FILE_CONFIG_ID",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/FileConfigToLabelTypeMappingDbm.java

@@ -154,7 +154,7 @@ public class FileConfigToLabelTypeMappingDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_40ED136E_748E_4BC7_961D_76CD3645AFE9",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_75F74A02_C2C3_4ECA_AF13_71D8A60AA9AD",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnFileConfigId = cci("FILE_CONFIG_ID",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/FileConfigToRoleTypeMappingDbm.java

@@ -154,7 +154,7 @@ public class FileConfigToRoleTypeMappingDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_C52ED1DA_CF0B_49EE_B9F7_9CCC5FD334E9",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_97B5ADF1_4B2B_4A1A_8911_810C6B365933",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnFileConfigId = cci("FILE_CONFIG_ID",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/FileCrawlingConfigDbm.java

@@ -401,7 +401,7 @@ public class FileCrawlingConfigDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_50C8436F_B31A_41CB_A67E_77A1CEDD7E46",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_98769B60_EC99_43E9_9C3F_CF1E75ABBF60",
             false,
             null,
             null,

+ 2 - 2
src/main/java/jp/sf/fess/db/bsentity/dbmeta/JobLogDbm.java

@@ -231,7 +231,7 @@ public class JobLogDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_A597AD31_D6B7_44D4_8A2C_D6B301347DAF",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_131D8FB9_8D41_4A03_BEB7_9262977BC90D",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnJobName = cci("JOB_NAME", "JOB_NAME",
@@ -266,7 +266,7 @@ public class JobLogDbm extends AbstractDBMeta {
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnEndTime = cci("END_TIME", "END_TIME",
-            null, null, true, "endTime", java.sql.Timestamp.class, false,
+            null, null, false, "endTime", java.sql.Timestamp.class, false,
             false, "TIMESTAMP", 23, 10, null, false, null, null, null, null,
             null);
 

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/LabelTypeDbm.java

@@ -284,7 +284,7 @@ public class LabelTypeDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_8A7FB6C6_8549_42D5_8CA2_EC01B2BB8993",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_060CF1E5_6E83_486D_9C25_2D972AF6F355",
             false,
             null,
             null,

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/LabelTypeToRoleTypeMappingDbm.java

@@ -154,7 +154,7 @@ public class LabelTypeToRoleTypeMappingDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_6C6CC5C9_4C99_4A34_B3FC_2D02022B9405",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_96F6074E_A18D_48ED_8F32_4F71CC4B64A7",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnLabelTypeId = cci("LABEL_TYPE_ID",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/OverlappingHostDbm.java

@@ -257,7 +257,7 @@ public class OverlappingHostDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_52ADF097_4702_4C36_A0AA_CD34C439E98C",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_9EC144CB_B1BF_42AD_8968_ACF67F680697",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnRegularName = cci("REGULAR_NAME",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/PathMappingDbm.java

@@ -271,7 +271,7 @@ public class PathMappingDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_7B1E2705_018B_4143_B47F_BD2917F734C1",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_2F2B2FEF_0BF8_41BE_A43D_4EFA6E62193D",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnRegex = cci("REGEX", "REGEX", null, null,

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/RequestHeaderDbm.java

@@ -258,7 +258,7 @@ public class RequestHeaderDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_976724F3_86F3_49E4_8A47_4FAC5AA8F709",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_A06C281D_C680_48EA_AC66_2A96E56C0304",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnName = cci("NAME", "NAME", null, null,

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/RoleTypeDbm.java

@@ -258,7 +258,7 @@ public class RoleTypeDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_1375DF17_88DE_425C_B243_92C84C2C1875",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_0D9BC963_B611_44F0_837B_0F02BD9F4847",
             false,
             null,
             null,

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/ScheduledJobDbm.java

@@ -335,7 +335,7 @@ public class ScheduledJobDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_2338A94D_9157_4C50_A309_977F2624EA0A",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_7423A7F0_057A_4298_83C8_58132727B0C0",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnName = cci("NAME", "NAME", null, null,

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/SearchFieldLogDbm.java

@@ -167,7 +167,7 @@ public class SearchFieldLogDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_C9C19A0F_6FA1_475C_934F_32C60D6B6B72",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_0E1864CF_AD17_4516_B4AD_3C8A3DC1E7B8",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnSearchId = cci("SEARCH_ID", "SEARCH_ID",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/SearchLogDbm.java

@@ -286,7 +286,7 @@ public class SearchLogDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_8D6385B7_786D_45E2_AA41_D5FA8C17BBF9",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_380A14A7_E02A_40AA_B0B1_825DFB0AB844",
             false, null, null, null, "clickLogList,searchFieldLogList", null);
 
     protected final ColumnInfo _columnSearchWord = cci("SEARCH_WORD",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/UserInfoDbm.java

@@ -167,7 +167,7 @@ public class UserInfoDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_22D09B91_FB6F_43EF_A2E5_739802A53FC1",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_26646B52_2FBC_4E74_8A56_6292786B7F3C",
             false, null, null, null, "favoriteLogList,searchLogList", null);
 
     protected final ColumnInfo _columnCode = cci("CODE", "CODE", null, null,

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/WebAuthenticationDbm.java

@@ -323,7 +323,7 @@ public class WebAuthenticationDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_B7ED1035_3C63_4922_B4CF_C02B104FA82E",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_0F7C7995_E44A_453D_8938_45539768010D",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnHostname = cci("HOSTNAME", "HOSTNAME",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/WebConfigToBrowserTypeMappingDbm.java

@@ -154,7 +154,7 @@ public class WebConfigToBrowserTypeMappingDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_710C901B_F4B7_42F7_B97F_3CB64A6939D9",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_42107AD0_2A38_4917_8034_38503E26087D",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnWebConfigId = cci("WEB_CONFIG_ID",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/WebConfigToLabelTypeMappingDbm.java

@@ -154,7 +154,7 @@ public class WebConfigToLabelTypeMappingDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_A101C255_F997_4DC4_8949_453E3E4A9051",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_B5E907A6_CB39_4B37_9446_C571EE87D642",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnWebConfigId = cci("WEB_CONFIG_ID",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/WebConfigToRoleTypeMappingDbm.java

@@ -154,7 +154,7 @@ public class WebConfigToRoleTypeMappingDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_EA1A7409_A1D1_4BE4_BFFC_B03DFEB227DB",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_328F9765_4DEC_4217_AC1F_33D082834575",
             false, null, null, null, null, null);
 
     protected final ColumnInfo _columnWebConfigId = cci("WEB_CONFIG_ID",

+ 1 - 1
src/main/java/jp/sf/fess/db/bsentity/dbmeta/WebCrawlingConfigDbm.java

@@ -414,7 +414,7 @@ public class WebCrawlingConfigDbm extends AbstractDBMeta {
             "BIGINT",
             19,
             0,
-            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_A2A25811_03ED_49AF_9DA3_3BF45CE3AED3",
+            "NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_A3B5DAAB_8D15_4A8A_8261_C0B3426CE65C",
             false,
             null,
             null,

+ 1 - 1
src/main/java/jp/sf/fess/db/cbean/bs/BsJobLogCB.java

@@ -415,7 +415,7 @@ public class BsJobLogCB extends AbstractConditionBean {
         }
 
         /**
-         * END_TIME: {NotNull, TIMESTAMP(23, 10)}
+         * END_TIME: {TIMESTAMP(23, 10)}
          * @return The information object of specified column. (NotNull)
          */
         public HpSpecifiedColumn columnEndTime() {

+ 23 - 7
src/main/java/jp/sf/fess/db/cbean/cq/bs/AbstractBsJobLogCQ.java

@@ -1120,7 +1120,7 @@ public abstract class AbstractBsJobLogCQ extends AbstractConditionQuery {
 
     /**
      * Equal(=). And NullIgnored, OnlyOnceRegistered. <br />
-     * END_TIME: {NotNull, TIMESTAMP(23, 10)}
+     * END_TIME: {TIMESTAMP(23, 10)}
      * @param endTime The value of endTime as equal. (NullAllowed: if null, no condition)
      */
     public void setEndTime_Equal(final java.sql.Timestamp endTime) {
@@ -1129,7 +1129,7 @@ public abstract class AbstractBsJobLogCQ extends AbstractConditionQuery {
 
     /**
      * GreaterThan(&gt;). And NullIgnored, OnlyOnceRegistered. <br />
-     * END_TIME: {NotNull, TIMESTAMP(23, 10)}
+     * END_TIME: {TIMESTAMP(23, 10)}
      * @param endTime The value of endTime as greaterThan. (NullAllowed: if null, no condition)
      */
     public void setEndTime_GreaterThan(final java.sql.Timestamp endTime) {
@@ -1138,7 +1138,7 @@ public abstract class AbstractBsJobLogCQ extends AbstractConditionQuery {
 
     /**
      * LessThan(&lt;). And NullIgnored, OnlyOnceRegistered. <br />
-     * END_TIME: {NotNull, TIMESTAMP(23, 10)}
+     * END_TIME: {TIMESTAMP(23, 10)}
      * @param endTime The value of endTime as lessThan. (NullAllowed: if null, no condition)
      */
     public void setEndTime_LessThan(final java.sql.Timestamp endTime) {
@@ -1147,7 +1147,7 @@ public abstract class AbstractBsJobLogCQ extends AbstractConditionQuery {
 
     /**
      * GreaterEqual(&gt;=). And NullIgnored, OnlyOnceRegistered. <br />
-     * END_TIME: {NotNull, TIMESTAMP(23, 10)}
+     * END_TIME: {TIMESTAMP(23, 10)}
      * @param endTime The value of endTime as greaterEqual. (NullAllowed: if null, no condition)
      */
     public void setEndTime_GreaterEqual(final java.sql.Timestamp endTime) {
@@ -1156,7 +1156,7 @@ public abstract class AbstractBsJobLogCQ extends AbstractConditionQuery {
 
     /**
      * LessEqual(&lt;=). And NullIgnored, OnlyOnceRegistered. <br />
-     * END_TIME: {NotNull, TIMESTAMP(23, 10)}
+     * END_TIME: {TIMESTAMP(23, 10)}
      * @param endTime The value of endTime as lessEqual. (NullAllowed: if null, no condition)
      */
     public void setEndTime_LessEqual(final java.sql.Timestamp endTime) {
@@ -1166,7 +1166,7 @@ public abstract class AbstractBsJobLogCQ extends AbstractConditionQuery {
     /**
      * FromTo with various options. (versatile) {(default) fromDatetime &lt;= column &lt;= toDatetime} <br />
      * And NullIgnored, OnlyOnceRegistered. <br />
-     * END_TIME: {NotNull, TIMESTAMP(23, 10)}
+     * END_TIME: {TIMESTAMP(23, 10)}
      * <pre>e.g. setEndTime_FromTo(fromDate, toDate, new <span style="color: #FD4747">FromToOption</span>().compareAsDate());</pre>
      * @param fromDatetime The from-datetime(yyyy/MM/dd HH:mm:ss.SSS) of endTime. (NullAllowed: if null, no from-condition)
      * @param toDatetime The to-datetime(yyyy/MM/dd HH:mm:ss.SSS) of endTime. (NullAllowed: if null, no to-condition)
@@ -1184,7 +1184,7 @@ public abstract class AbstractBsJobLogCQ extends AbstractConditionQuery {
     /**
      * DateFromTo. (Date means yyyy/MM/dd) {fromDate &lt;= column &lt; toDate + 1 day} <br />
      * And NullIgnored, OnlyOnceRegistered. <br />
-     * END_TIME: {NotNull, TIMESTAMP(23, 10)}
+     * END_TIME: {TIMESTAMP(23, 10)}
      * <pre>
      * e.g. from:{2007/04/10 08:24:53} to:{2007/04/16 14:36:29}
      *  column &gt;= '2007/04/10 00:00:00' and column <span style="color: #FD4747">&lt; '2007/04/17 00:00:00'</span>
@@ -1197,6 +1197,22 @@ public abstract class AbstractBsJobLogCQ extends AbstractConditionQuery {
         setEndTime_FromTo(fromDate, toDate, new FromToOption().compareAsDate());
     }
 
+    /**
+     * IsNull {is null}. And OnlyOnceRegistered. <br />
+     * END_TIME: {TIMESTAMP(23, 10)}
+     */
+    public void setEndTime_IsNull() {
+        regEndTime(CK_ISN, DOBJ);
+    }
+
+    /**
+     * IsNotNull {is not null}. And OnlyOnceRegistered. <br />
+     * END_TIME: {TIMESTAMP(23, 10)}
+     */
+    public void setEndTime_IsNotNull() {
+        regEndTime(CK_ISNN, DOBJ);
+    }
+
     protected void regEndTime(final ConditionKey k, final Object v) {
         regQ(k, v, getCValueEndTime(), "END_TIME");
     }

+ 2 - 2
src/main/java/jp/sf/fess/db/cbean/cq/bs/BsJobLogCQ.java

@@ -388,7 +388,7 @@ public class BsJobLogCQ extends AbstractBsJobLogCQ {
 
     /** 
      * Add order-by as ascend. <br />
-     * END_TIME: {NotNull, TIMESTAMP(23, 10)}
+     * END_TIME: {TIMESTAMP(23, 10)}
      * @return this. (NotNull)
      */
     public BsJobLogCQ addOrderBy_EndTime_Asc() {
@@ -398,7 +398,7 @@ public class BsJobLogCQ extends AbstractBsJobLogCQ {
 
     /**
      * Add order-by as descend. <br />
-     * END_TIME: {NotNull, TIMESTAMP(23, 10)}
+     * END_TIME: {TIMESTAMP(23, 10)}
      * @return this. (NotNull)
      */
     public BsJobLogCQ addOrderBy_EndTime_Desc() {

+ 1 - 0
src/main/java/jp/sf/fess/db/exentity/FileCrawlingConfig.java

@@ -230,6 +230,7 @@ public class FileCrawlingConfig extends BsFileCrawlingConfig implements
         return null;
     }
 
+    @Override
     public void initializeClientFactory(final S2RobotClientFactory clientFactory) {
         final FileAuthenticationService fileAuthenticationService = SingletonS2Container
                 .getComponent(FileAuthenticationService.class);

+ 1 - 1
src/main/java/jp/sf/fess/db/exentity/ScheduledJob.java

@@ -49,6 +49,6 @@ public class ScheduledJob extends BsScheduledJob {
 
     public boolean isRunning() {
         return SingletonS2Container.getComponent(SystemHelper.class)
-                .isRunningJobExecutoer(getId());
+                .getJobExecutoer(getId()) != null;
     }
 }

+ 2 - 2
src/main/java/jp/sf/fess/db/exentity/WebCrawlingConfig.java

@@ -234,8 +234,8 @@ public class WebCrawlingConfig extends BsWebCrawlingConfig implements
         return null;
     }
 
-    public void initializeClientFactory(
-            final S2RobotClientFactory clientFactory) {
+    @Override
+    public void initializeClientFactory(final S2RobotClientFactory clientFactory) {
         final WebAuthenticationService webAuthenticationService = SingletonS2Container
                 .getComponent(WebAuthenticationService.class);
         final RequestHeaderService requestHeaderService = SingletonS2Container

+ 6 - 5
src/main/java/jp/sf/fess/helper/SystemHelper.java

@@ -611,16 +611,17 @@ public class SystemHelper implements Serializable {
         forceStop.set(true);
     }
 
-    public void addRunningJobExecutoer(final Long id,
+    public JobExecutor startJobExecutoer(final Long id,
             final JobExecutor jobExecutor) {
-        runningJobExecutorMap.put(id, jobExecutor);
+        return runningJobExecutorMap.putIfAbsent(id, jobExecutor);
     }
 
-    public void removeRunningJobExecutoer(final Long id) {
+    public void finishJobExecutoer(final Long id) {
         runningJobExecutorMap.remove(id);
     }
 
-    public boolean isRunningJobExecutoer(final Long id) {
-        return runningJobExecutorMap.containsKey(id);
+    public JobExecutor getJobExecutoer(final Long id) {
+        return runningJobExecutorMap.get(id);
     }
+
 }

+ 11 - 9
src/main/java/jp/sf/fess/job/TriggeredJob.java

@@ -56,11 +56,6 @@ public class TriggeredJob implements Job {
         final String script = scheduledJob.getScriptData();
         final Long id = scheduledJob.getId();
         final String jobId = Constants.JOB_ID_PREFIX + id;
-        if (systemHelper.isRunningJobExecutoer(id)) {
-            logger.info(jobId + " is running.");
-            return;
-        }
-
         final JobExecutor jobExecutor = SingletonS2Container
                 .getComponent(scriptType + JOB_EXECUTOR_SUFFIX);
         if (jobExecutor == null) {
@@ -68,8 +63,17 @@ public class TriggeredJob implements Job {
                     + JOB_EXECUTOR_SUFFIX);
         }
 
+        if (systemHelper.startJobExecutoer(id, jobExecutor) != null) {
+            logger.info(jobId + " is running.");
+            return;
+        }
+
+        final JobLogService jobLogService = SingletonS2Container
+                .getComponent(JobLogService.class);
         try {
-            systemHelper.addRunningJobExecutoer(id, jobExecutor);
+            if (scheduledJob.isLoggingEnabled()) {
+                jobLogService.store(jobLog);
+            }
 
             if (logger.isDebugEnabled()) {
                 logger.debug("Job " + jobId + "/" + scriptType
@@ -89,10 +93,8 @@ public class TriggeredJob implements Job {
             jobLog.setJobStatus(Constants.FAIL);
             jobLog.setScriptResult(e.getLocalizedMessage());
         } finally {
-            systemHelper.removeRunningJobExecutoer(id);
+            systemHelper.finishJobExecutoer(id);
             jobLog.setEndTime(new Timestamp(System.currentTimeMillis()));
-            final JobLogService jobLogService = SingletonS2Container
-                    .getComponent(JobLogService.class);
             if (logger.isDebugEnabled()) {
                 logger.debug("jobLog: " + jobLog);
             }

BIN
src/main/webapp/WEB-INF/db/fess.h2.db


+ 4 - 1
src/main/webapp/WEB-INF/view/admin/jobLog/index.jsp

@@ -55,7 +55,10 @@
 								<td>${f:h(data.jobName)}</td>
 								<td style="text-align: center;text-transform: uppercase;">${f:h(data.jobStatus)}</td>
 								<td style="text-align: center;"><fmt:formatDate value="${data.startTime}" pattern="yyyy-MM-dd'T'HH:mm:ss" /></td>
-								<td style="text-align: center;"><fmt:formatDate value="${data.endTime}" pattern="yyyy-MM-dd'T'HH:mm:ss" /></td>
+								<td style="text-align: center;">
+									<c:if test="${data.endTime!=null}"><fmt:formatDate value="${data.endTime}" pattern="yyyy-MM-dd'T'HH:mm:ss" /></c:if>
+									<c:if test="${data.endTime==null}"><bean:message key="labels.none" /></c:if>
+								</td>
 								<td style="text-align: center;"><s:link
 										href="confirmpage/4/${f:u(data.id)}">
 										<bean:message key="labels.joblog_link_details" />