azkaban-uncached

Details

diff --git a/src/java/azkaban/execapp/FlowRunner.java b/src/java/azkaban/execapp/FlowRunner.java
index 91ac757..9be4158 100644
--- a/src/java/azkaban/execapp/FlowRunner.java
+++ b/src/java/azkaban/execapp/FlowRunner.java
@@ -541,6 +541,8 @@ public class FlowRunner extends EventHandler implements Runnable {
 					else {
 						logger.error("Cannot retry a job that hasn't finished. " + jobId);
 					}
+					
+					queueNextJob(node);
 				}
 			}
 			
@@ -555,6 +557,7 @@ public class FlowRunner extends EventHandler implements Runnable {
 			
 			if (!isFailureFound) {
 				flow.setStatus(Status.RUNNING);
+				flow.setUpdateTime(System.currentTimeMillis());
 			}
 			
 			updateFlow();
diff --git a/src/java/azkaban/executor/JdbcExecutorLoader.java b/src/java/azkaban/executor/JdbcExecutorLoader.java
index 87478ac..8bfc19f 100644
--- a/src/java/azkaban/executor/JdbcExecutorLoader.java
+++ b/src/java/azkaban/executor/JdbcExecutorLoader.java
@@ -684,11 +684,12 @@ public class JdbcExecutorLoader implements ExecutorLoader {
 			do {
 				//int execId = rs.getInt(1);
 				//String name = rs.getString(2);
-				EncodingType encType = EncodingType.fromInteger(rs.getInt(3));
-				int startByte = rs.getInt(4);
-				int endByte = rs.getInt(5);
+				int attempt = rs.getInt(3);
+				EncodingType encType = EncodingType.fromInteger(rs.getInt(4));
+				int startByte = rs.getInt(5);
+				int endByte = rs.getInt(6);
 
-				byte[] data = rs.getBytes(6);
+				byte[] data = rs.getBytes(7);
 
 				int offset = this.startByte > startByte ? this.startByte - startByte : 0;
 				int length = this.endByte < endByte ? this.endByte - startByte - offset: endByte - startByte - offset;
diff --git a/src/web/js/azkaban.exflow.view.js b/src/web/js/azkaban.exflow.view.js
index cd6382c..a32419b 100644
--- a/src/web/js/azkaban.exflow.view.js
+++ b/src/web/js/azkaban.exflow.view.js
@@ -345,10 +345,12 @@ azkaban.ExecutionListView = Backbone.View.extend({
 		var flowStartTime = data.startTime;
 		
 		var outerWidth = $(".outerProgress").css("width");
-		if (outerWidth.substring(outerWidth.length - 2, outerWidth.length) == "px") {
-			outerWidth = outerWidth.substring(0, outerWidth.length - 2);
+		if (outerWidth) {
+			if (outerWidth.substring(outerWidth.length - 2, outerWidth.length) == "px") {
+				outerWidth = outerWidth.substring(0, outerWidth.length - 2);
+			}
+			outerWidth = parseInt(outerWidth);
 		}
-		outerWidth = parseInt(outerWidth);
 		
 		var nodes = data.nodes;
 		for (var i = 0; i < nodes.length; ++i) {
diff --git a/unit/java/azkaban/test/executor/SleepJavaJob.java b/unit/java/azkaban/test/executor/SleepJavaJob.java
index 0bba1ec..689dee1 100644
--- a/unit/java/azkaban/test/executor/SleepJavaJob.java
+++ b/unit/java/azkaban/test/executor/SleepJavaJob.java
@@ -56,7 +56,8 @@ public class SleepJavaJob {
 		if (fail) {
 			if (attempts <= 0 || attemptFiles == null || attemptFiles.length > attempts) {
 				File attemptFile = new File(file, id + "." + (attemptFiles == null ? 0 : attemptFiles.length));
-				attemptFile.mkdir();
+
+				attemptFile.mkdirs();
 				throw new Exception("I failed because I had to.");
 			}
 		}