azkaban-uncached

Merge branch 'master' of github.com:azkaban/azkaban2 into

4/2/2013 7:13:40 PM

Details

diff --git a/src/java/azkaban/execapp/FlowRunnerManager.java b/src/java/azkaban/execapp/FlowRunnerManager.java
index cc35939..58beb8e 100644
--- a/src/java/azkaban/execapp/FlowRunnerManager.java
+++ b/src/java/azkaban/execapp/FlowRunnerManager.java
@@ -152,7 +152,7 @@ public class FlowRunnerManager implements EventListener {
 					String fileName = new File(project.getAbsolutePath()).getName();
 					int projectId = Integer.parseInt(fileName.split("\\.")[0]);
 					int versionNum = Integer.parseInt(fileName.split("\\.")[1]);
-					ProjectVersion version = new ProjectVersion(projectId, versionNum);
+					ProjectVersion version = new ProjectVersion(projectId, versionNum, project);
 					allProjects.put(new Pair<Integer, Integer>(projectId, versionNum), version);
 				}
 				catch (Exception e) {
@@ -239,6 +239,7 @@ public class FlowRunnerManager implements EventListener {
 						if (currentTime - OLD_PROJECT_DIR_INTERVAL_MS > lastOldProjectCleanTime) {
 							logger.info("Cleaning old projects");
 							cleanOlderProjects();
+							
 							lastOldProjectCleanTime = currentTime;
 						}
 						
@@ -340,6 +341,7 @@ public class FlowRunnerManager implements EventListener {
 						try {
 							logger.info("Removing old unused installed project " + version.getProjectId() + ":" + version.getVersion());
 							version.deleteDirectory();
+							installedProjects.remove(new Pair<Integer, Integer>(version.getProjectId(), version.getVersion()));
 						} catch (IOException e) {
 							e.printStackTrace();
 						}
diff --git a/src/java/azkaban/execapp/JobRunner.java b/src/java/azkaban/execapp/JobRunner.java
index a14aff5..e5e0d02 100644
--- a/src/java/azkaban/execapp/JobRunner.java
+++ b/src/java/azkaban/execapp/JobRunner.java
@@ -321,9 +321,10 @@ public class JobRunner extends EventHandler implements Runnable {
 		try {
 			job.run();
 		} catch (Exception e) {
+			e.printStackTrace();
 			node.setStatus(Status.FAILED);
 			logError("Job run failed!");
-			logError(e.getMessage());
+			logError(e.getMessage() + e.getCause());
 			return;
 		}
 
diff --git a/src/java/azkaban/execapp/ProjectVersion.java b/src/java/azkaban/execapp/ProjectVersion.java
index 7a9adac..18e6e58 100644
--- a/src/java/azkaban/execapp/ProjectVersion.java
+++ b/src/java/azkaban/execapp/ProjectVersion.java
@@ -23,6 +23,12 @@ public class ProjectVersion implements Comparable<ProjectVersion> {
 		this.projectId = projectId;
 		this.version = version;
 	}
+	
+	public ProjectVersion(int projectId, int version, File installedDir) {
+		this.projectId = projectId;
+		this.version = version;
+		this.installedDir = installedDir;
+	}
 
 	public int getProjectId() {
 		return projectId;
@@ -77,6 +83,7 @@ public class ProjectVersion implements Comparable<ProjectVersion> {
 	}
 	
 	public synchronized void deleteDirectory() throws IOException {
+		System.out.println("Deleting old unused project versin " + installedDir);
 		if (installedDir != null && installedDir.exists()) {
 			FileUtils.deleteDirectory(installedDir);
 		}
diff --git a/src/java/azkaban/jobtype/JobTypeManager.java b/src/java/azkaban/jobtype/JobTypeManager.java
index a6db77d..dc24db7 100644
--- a/src/java/azkaban/jobtype/JobTypeManager.java
+++ b/src/java/azkaban/jobtype/JobTypeManager.java
@@ -105,9 +105,15 @@ public class JobTypeManager
 			if(confFile != null) {
 				globalConf = new Props(null, confFile);
 			}
+			else {
+				globalConf = new Props();
+			}
 			if(sysConfFile != null) {
 				globalSysConf = new Props(null, sysConfFile);
 			}
+			else {
+				globalSysConf = new Props();
+			}
 		}
 		catch (Exception e) {
 			throw new JobTypeManagerException("Failed to get global jobtype properties" + e.getCause());
@@ -198,10 +204,13 @@ public class JobTypeManager
 				conf = new Props(commonConf, confFile);
 //				conf = PropsUtils.resolveProps(conf);
 			}
-			if(sysConfFile != null) {
-				sysConf = new Props(commonSysConf, sysConfFile);
-				sysConf = PropsUtils.resolveProps(sysConf);
+			else {
+				conf = new Props(commonConf);
 			}
+			
+			sysConf = new Props(commonSysConf, sysConfFile);
+			sysConf = PropsUtils.resolveProps(sysConf);
+
 		}
 		catch (Exception e) {
 			throw new JobTypeManagerException("Failed to get jobtype properties" + e.getMessage());
diff --git a/src/java/azkaban/webapp/AzkabanWebServer.java b/src/java/azkaban/webapp/AzkabanWebServer.java
index 3ebd2d7..7494878 100644
--- a/src/java/azkaban/webapp/AzkabanWebServer.java
+++ b/src/java/azkaban/webapp/AzkabanWebServer.java
@@ -114,6 +114,7 @@ public class AzkabanWebServer implements AzkabanServer {
 	public static final String JDO_PROPERTIES_FILE = "jdo.properties";
 
 	private static final int MAX_FORM_CONTENT_SIZE = 10*1024*1024;
+	private static final int MAX_HEADER_BUFFER_SIZE = 10*1024*1024;
 	private static AzkabanWebServer app;
 
 	private static final String DEFAULT_TIMEZONE_ID = "default.timezone.id";
@@ -415,6 +416,7 @@ public class AzkabanWebServer implements AzkabanServer {
 		secureConnector.setKeyPassword(azkabanSettings.getString("jetty.keypassword"));
 		secureConnector.setTruststore(azkabanSettings.getString("jetty.truststore"));
 		secureConnector.setTrustPassword(azkabanSettings.getString("jetty.trustpassword"));
+		secureConnector.setHeaderBufferSize(MAX_HEADER_BUFFER_SIZE);
 		
 		server.addConnector(secureConnector);
 		app = new AzkabanWebServer(server, azkabanSettings);