You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by cd...@apache.org on 2009/05/27 01:08:12 UTC

svn commit: r778921 - in /hadoop/core/trunk: CHANGES.txt src/core/org/apache/hadoop/util/RunJar.java src/test/mapred/org/apache/hadoop/util/TestRunJar.java src/test/mapred/testjar/Hello.java

Author: cdouglas
Date: Tue May 26 23:08:11 2009
New Revision: 778921

URL: http://svn.apache.org/viewvc?rev=778921&view=rev
Log:
HADOOP-5809. Fix job submission, broken by errant directory creation. Contributed by Sreekanth Ramakrishnan and Jothi Padmanabhan

Added:
    hadoop/core/trunk/src/test/mapred/org/apache/hadoop/util/TestRunJar.java
    hadoop/core/trunk/src/test/mapred/testjar/Hello.java
Modified:
    hadoop/core/trunk/CHANGES.txt
    hadoop/core/trunk/src/core/org/apache/hadoop/util/RunJar.java

Modified: hadoop/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=778921&r1=778920&r2=778921&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Tue May 26 23:08:11 2009
@@ -682,6 +682,9 @@
     HADOOP-5710. Counter MAP_INPUT_BYTES missing from new mapreduce api. 
     (Amareshwari Sriramadasu via sharad)
 
+    HADOOP-5809. Fix job submission, broken by errant directory creation.
+    (Sreekanth Ramakrishnan and Jothi Padmanabhan via cdouglas)
+
 Release 0.20.1 - Unreleased
 
   INCOMPATIBLE CHANGES

Modified: hadoop/core/trunk/src/core/org/apache/hadoop/util/RunJar.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/core/org/apache/hadoop/util/RunJar.java?rev=778921&r1=778920&r2=778921&view=diff
==============================================================================
--- hadoop/core/trunk/src/core/org/apache/hadoop/util/RunJar.java (original)
+++ hadoop/core/trunk/src/core/org/apache/hadoop/util/RunJar.java Tue May 26 23:08:11 2009
@@ -108,7 +108,7 @@
 
     File tmpDir = new File(new Configuration().get("hadoop.tmp.dir"));
     boolean b = tmpDir.mkdirs();
-    if (!b || !tmpDir.isDirectory()) { 
+    if (!b && !tmpDir.isDirectory()) { 
       System.err.println("Mkdirs failed to create " + tmpDir);
       System.exit(-1);
     }
@@ -119,7 +119,7 @@
       System.exit(-1);
     }
     b = workDir.mkdirs();
-    if (!b || !workDir.isDirectory()) {
+    if (!b && !workDir.isDirectory()) {
       System.err.println("Mkdirs failed to create " + workDir);
       System.exit(-1);
     }

Added: hadoop/core/trunk/src/test/mapred/org/apache/hadoop/util/TestRunJar.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/test/mapred/org/apache/hadoop/util/TestRunJar.java?rev=778921&view=auto
==============================================================================
--- hadoop/core/trunk/src/test/mapred/org/apache/hadoop/util/TestRunJar.java (added)
+++ hadoop/core/trunk/src/test/mapred/org/apache/hadoop/util/TestRunJar.java Tue May 26 23:08:11 2009
@@ -0,0 +1,49 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.util;
+
+
+import java.io.File;
+import org.apache.hadoop.fs.Path;
+
+import junit.framework.TestCase;
+
+/**
+ * A test to rest the RunJar class.
+ */
+public class TestRunJar extends TestCase {
+  
+  private static String TEST_ROOT_DIR = new Path(System.getProperty(
+      "test.build.data", "/tmp")).toString();
+  
+  public void testRunjar() throws Throwable {
+  
+   File outFile = new File(TEST_ROOT_DIR, "out");
+     // delete if output file already exists.
+    if (outFile.exists()) {
+      outFile.delete();
+    }
+    
+    String[] args = new String[3];
+    args[0] = "build/test/mapred/testjar/testjob.jar";
+    args[1] = "testjar.Hello";
+    args[2] = outFile.toString();
+    RunJar.main(args);
+    assertTrue("RunJar failed", outFile.exists());
+  }
+}

Added: hadoop/core/trunk/src/test/mapred/testjar/Hello.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/test/mapred/testjar/Hello.java?rev=778921&view=auto
==============================================================================
--- hadoop/core/trunk/src/test/mapred/testjar/Hello.java (added)
+++ hadoop/core/trunk/src/test/mapred/testjar/Hello.java Tue May 26 23:08:11 2009
@@ -0,0 +1,40 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package testjar;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+/**
+ * A simple Hello class that is called from TestRunJar 
+ *
+ */
+public class Hello {
+  public static void main(String[] args){
+    try {
+      System.out.println("Creating file" + args[0]);
+      FileOutputStream fstream = new FileOutputStream(args[0]);
+      fstream.write("Hello Hadoopers".getBytes());
+      fstream.close();
+    } 
+    catch (IOException e) {
+      //do nothing
+    }
+  }
+}