git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorSweidan Omar <TFS\sweidan.omar>
Fri, 10 Dec 2021 14:03:14 +0000 (14:03 +0000)
committerSweidan Omar <TFS\sweidan.omar>
Fri, 10 Dec 2021 14:03:14 +0000 (14:03 +0000)
server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngineConfiguration.java

index af0aa58293975d6682cef69a4c729a0f603f9a35..a7bd34ab23040709a73b38aa77a6d6dccb5e10f0 100644 (file)
@@ -11,12 +11,14 @@ import java.nio.file.Files;
 import java.nio.file.Path;\r
 import java.nio.file.Paths;\r
 import java.security.CodeSource;\r
+import java.util.AbstractMap.SimpleEntry;\r
 import java.util.ArrayList;\r
 import java.util.Collections;\r
 import java.util.HashSet;\r
 import java.util.LinkedHashMap;\r
 import java.util.List;\r
 import java.util.Map;\r
+import java.util.Map.Entry;\r
 import java.util.Set;\r
 import java.util.function.Consumer;\r
 import java.util.function.Predicate;\r
@@ -324,18 +326,34 @@ public class JobEngineConfiguration implements IJobEngineConfiguration {
                String jsonConfig = new String(Files.readAllBytes(Paths.get(configFilePath)));\r
                BasicDBObject dbo = (BasicDBObject) JSONUtil.jsonToDbObject(jsonConfig);\r
                BasicDBList scheduleJobs = NoSQLUtils.asDBList(dbo, "joblist");\r
+               ArrayList<Entry<String, BasicDBObject>> schedulesArraylist = new ArrayList<Entry<String, BasicDBObject>>();\r
+\r
                scheduleJobs.forEach(o -> {\r
                        try {\r
+                               boolean keyAlreadyContained = false;\r
                                BasicDBObject j = (BasicDBObject) o;\r
                                String template = j.getString("template");\r
                                String xml = loadTemplateXml(template);\r
                                j.put("xml", xml);\r
-                               schedules.put(template, j);\r
+\r
+                               for (int index = 0; index < schedulesArraylist.size(); index++) {\r
+                                       if (schedulesArraylist.get(index).getKey().equals(template)) {\r
+                                               keyAlreadyContained = true;\r
+                                               throw new Exception("Key " + template + " is already contained in scheduled jobs!");\r
+                                       }\r
+                               }\r
+\r
+                               if (!keyAlreadyContained) {\r
+                                       schedulesArraylist.add(new SimpleEntry<String, BasicDBObject>(template, j));\r
+                               }\r
                        } catch (Exception e) {\r
                                logger.error("Scheduled job error! {}", e.getMessage());\r
                        }\r
-\r
                });\r
+\r
+               for (Entry<String, BasicDBObject> entry : schedulesArraylist) {\r
+                       schedules.put(entry.getKey(), entry.getValue());\r
+               }\r
        }\r
 \r
        private Set<File> getJavaFileList(Path path, String excludeFileName) {\r