diff --git a/src/java/azkaban/executor/ExecutableFlow.java b/src/java/azkaban/executor/ExecutableFlow.java
index b449654..152a546 100644
--- a/src/java/azkaban/executor/ExecutableFlow.java
+++ b/src/java/azkaban/executor/ExecutableFlow.java
@@ -266,6 +266,7 @@ public class ExecutableFlow {
flowObj.put("executionPath", executionPath);
flowObj.put("flowId", flowId);
flowObj.put("projectId", projectId);
+
if(scheduleId >= 0) {
flowObj.put("scheduleId", scheduleId);
}
diff --git a/src/java/azkaban/executor/JdbcExecutorLoader.java b/src/java/azkaban/executor/JdbcExecutorLoader.java
index 33a9f76..5c907a9 100644
--- a/src/java/azkaban/executor/JdbcExecutorLoader.java
+++ b/src/java/azkaban/executor/JdbcExecutorLoader.java
@@ -223,13 +223,13 @@ public class JdbcExecutorLoader extends AbstractJdbcLoader implements ExecutorLo
ArrayList<Object> params = new ArrayList<Object>();
boolean first = true;
- if (projContain != null) {
+ if (projContain != null && !projContain.isEmpty()) {
query += " ef JOIN projects p ON ef.project_id = p.id WHERE name LIKE ?";
params.add('%'+projContain+'%');
first = false;
}
- if (flowContains != null) {
+ if (flowContains != null && !flowContains.isEmpty()) {
if (first) {
query += " WHERE ";
first = false;
@@ -242,7 +242,7 @@ public class JdbcExecutorLoader extends AbstractJdbcLoader implements ExecutorLo
params.add('%'+flowContains+'%');
}
- if (userNameContains != null) {
+ if (userNameContains != null && !userNameContains.isEmpty()) {
if (first) {
query += " WHERE ";
first = false;
diff --git a/src/java/azkaban/scheduler/ScheduleManager.java b/src/java/azkaban/scheduler/ScheduleManager.java
index 00c4f46..c60f143 100644
--- a/src/java/azkaban/scheduler/ScheduleManager.java
+++ b/src/java/azkaban/scheduler/ScheduleManager.java
@@ -270,15 +270,17 @@ public class ScheduleManager {
* @param flow
*/
public synchronized void insertSchedule(Schedule s) {
- boolean exist = scheduleIdentityPairMap.containsKey(s.getScheduleIdentityPair());
+ boolean exist = s.getScheduleId() != -1;
if(s.updateTime()) {
- internalSchedule(s);
try {
if(!exist) {
loader.insertSchedule(s);
+ internalSchedule(s);
}
- else
+ else{
loader.updateSchedule(s);
+ internalSchedule(s);
+ }
} catch (ScheduleManagerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@@ -407,6 +409,7 @@ public class ScheduleManager {
// Create ExecutableFlow
ExecutableFlow exflow = new ExecutableFlow(flow);
+ System.out.println("ScheduleManager: creating schedule: " +runningSched.getScheduleId());
exflow.setScheduleId(runningSched.getScheduleId());
exflow.setSubmitUser(runningSched.getSubmitUser());
exflow.addAllProxyUsers(project.getProxyUsers());
diff --git a/src/java/azkaban/webapp/servlet/HistoryServlet.java b/src/java/azkaban/webapp/servlet/HistoryServlet.java
index ac6fed0..aa6d2ad 100644
--- a/src/java/azkaban/webapp/servlet/HistoryServlet.java
+++ b/src/java/azkaban/webapp/servlet/HistoryServlet.java
@@ -120,10 +120,10 @@ public class HistoryServlet extends LoginAbstractAzkabanServlet {
}
List<ExecutableFlow> history = null;
if(hasParam(req, "advfilter")) {
- String projContain = getParam(req, "projcontain") == "" ? null : getParam(req, "projcontain");
- String flowContain = getParam(req, "flowcontain") == "" ? null : getParam(req, "flowcontain");
- String userContain = getParam(req, "usercontain") == "" ? null : getParam(req, "usercontain");
- int status = getIntParam(req, "status") == 0 ? 0 : getIntParam(req, "status");
+ String projContain = getParam(req, "projcontain");
+ String flowContain = getParam(req, "flowcontain");
+ String userContain = getParam(req, "usercontain");
+ int status = getIntParam(req, "status");
String begin = getParam(req, "begin");
long beginTime = begin == "" ? -1 : DateTimeFormat.forPattern("MM/dd/yyyy-HH:mm").parseDateTime(begin).getMillis();
String end = getParam(req, "end");
@@ -131,7 +131,6 @@ public class HistoryServlet extends LoginAbstractAzkabanServlet {
try {
history = executorManager.getExecutableFlows(projContain, flowContain, userContain, status, beginTime, endTime, (pageNum - 1)*pageSize, pageSize);
} catch (ExecutorManagerException e) {
- // TODO Auto-generated catch block
page.add("error", e.getMessage());
}
}