diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index 3a7ff9274e5..cc6eae3ec43 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -217,6 +217,9 @@ Release 2.1.1-beta - UNRELEASED MAPREDUCE-5367. Local jobs all use same local working directory (Sandy Ryza) + MAPREDUCE-5425. Junit in TestJobHistoryServer failing in jdk 7 (Robert + Parker via jlowe) + Release 2.1.0-beta - 2013-08-06 INCOMPATIBLE CHANGES diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/JobHistoryServer.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/JobHistoryServer.java index d6f509f144c..a5e2f1794a0 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/JobHistoryServer.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/JobHistoryServer.java @@ -32,6 +32,7 @@ import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem; import org.apache.hadoop.metrics2.source.JvmMetrics; import org.apache.hadoop.security.SecurityUtil; import org.apache.hadoop.service.CompositeService; +import org.apache.hadoop.util.ExitUtil; import org.apache.hadoop.util.ShutdownHookManager; import org.apache.hadoop.util.StringUtils; import org.apache.hadoop.yarn.YarnUncaughtExceptionHandler; @@ -139,11 +140,13 @@ public class JobHistoryServer extends CompositeService { return this.clientService; } - public static void main(String[] args) { - Thread.setDefaultUncaughtExceptionHandler(new YarnUncaughtExceptionHandler()); + static JobHistoryServer launchJobHistoryServer(String[] args) { + Thread. + setDefaultUncaughtExceptionHandler(new YarnUncaughtExceptionHandler()); StringUtils.startupShutdownMessage(JobHistoryServer.class, args, LOG); + JobHistoryServer jobHistoryServer = null; try { - JobHistoryServer jobHistoryServer = new JobHistoryServer(); + jobHistoryServer = new JobHistoryServer(); ShutdownHookManager.get().addShutdownHook( new CompositeServiceShutdownHook(jobHistoryServer), SHUTDOWN_HOOK_PRIORITY); @@ -152,7 +155,12 @@ public class JobHistoryServer extends CompositeService { jobHistoryServer.start(); } catch (Throwable t) { LOG.fatal("Error starting JobHistoryServer", t); - System.exit(-1); + ExitUtil.terminate(-1, "Error starting JobHistoryServer"); } + return jobHistoryServer; + } + + public static void main(String[] args) { + launchJobHistoryServer(args); } } diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/TestJobHistoryServer.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/TestJobHistoryServer.java index 0a1c6382260..109601e41b5 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/TestJobHistoryServer.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/TestJobHistoryServer.java @@ -63,14 +63,11 @@ public class TestJobHistoryServer { private static RecordFactory recordFactory = RecordFactoryProvider .getRecordFactory(null); - - JobHistoryServer historyServer=null; + // simple test init/start/stop JobHistoryServer. Status should change. - @Test (timeout= 50000 ) public void testStartStopServer() throws Exception { - historyServer = new JobHistoryServer(); Configuration config = new Configuration(); historyServer.init(config); @@ -86,15 +83,9 @@ public class TestJobHistoryServer { historyServer.stop(); assertEquals(STATE.STOPPED, historyServer.getServiceState()); assertNotNull(historyService.getClientHandler().getConnectAddress()); - - - } - - //Test reports of JobHistoryServer. History server should get log files from MRApp and read them - @Test (timeout= 50000 ) public void testReports() throws Exception { Configuration config = new Configuration(); @@ -128,7 +119,6 @@ public class TestJobHistoryServer { assertEquals(1, jobs.size()); assertEquals("job_0_0000",jobs.keySet().iterator().next().toString()); - Task task = job.getTasks().values().iterator().next(); TaskAttempt attempt = task.getAttempts().values().iterator().next(); @@ -188,14 +178,14 @@ public class TestJobHistoryServer { assertEquals("", diagnosticResponse.getDiagnostics(0)); } - // test main method + + // test launch method @Test (timeout =60000) - public void testMainMethod() throws Exception { + public void testLaunch() throws Exception { ExitUtil.disableSystemExit(); try { - JobHistoryServer.main(new String[0]); - + historyServer = JobHistoryServer.launchJobHistoryServer(new String[0]); } catch (ExitUtil.ExitException e) { assertEquals(0,e.status); ExitUtil.resetFirstExitException();