MAPREDUCE-5425. Junit in TestJobHistoryServer failing in jdk 7. Contributed by Robert Parker

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1511464 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jason Darrell Lowe 2013-08-07 20:02:10 +00:00
parent f2942687d4
commit c5c90ff8f5
3 changed files with 20 additions and 19 deletions

View File

@ -217,6 +217,9 @@ Release 2.1.1-beta - UNRELEASED
MAPREDUCE-5367. Local jobs all use same local working directory MAPREDUCE-5367. Local jobs all use same local working directory
(Sandy Ryza) (Sandy Ryza)
MAPREDUCE-5425. Junit in TestJobHistoryServer failing in jdk 7 (Robert
Parker via jlowe)
Release 2.1.0-beta - 2013-08-06 Release 2.1.0-beta - 2013-08-06
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -32,6 +32,7 @@ import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
import org.apache.hadoop.metrics2.source.JvmMetrics; import org.apache.hadoop.metrics2.source.JvmMetrics;
import org.apache.hadoop.security.SecurityUtil; import org.apache.hadoop.security.SecurityUtil;
import org.apache.hadoop.service.CompositeService; import org.apache.hadoop.service.CompositeService;
import org.apache.hadoop.util.ExitUtil;
import org.apache.hadoop.util.ShutdownHookManager; import org.apache.hadoop.util.ShutdownHookManager;
import org.apache.hadoop.util.StringUtils; import org.apache.hadoop.util.StringUtils;
import org.apache.hadoop.yarn.YarnUncaughtExceptionHandler; import org.apache.hadoop.yarn.YarnUncaughtExceptionHandler;
@ -139,11 +140,13 @@ public class JobHistoryServer extends CompositeService {
return this.clientService; return this.clientService;
} }
public static void main(String[] args) { static JobHistoryServer launchJobHistoryServer(String[] args) {
Thread.setDefaultUncaughtExceptionHandler(new YarnUncaughtExceptionHandler()); Thread.
setDefaultUncaughtExceptionHandler(new YarnUncaughtExceptionHandler());
StringUtils.startupShutdownMessage(JobHistoryServer.class, args, LOG); StringUtils.startupShutdownMessage(JobHistoryServer.class, args, LOG);
JobHistoryServer jobHistoryServer = null;
try { try {
JobHistoryServer jobHistoryServer = new JobHistoryServer(); jobHistoryServer = new JobHistoryServer();
ShutdownHookManager.get().addShutdownHook( ShutdownHookManager.get().addShutdownHook(
new CompositeServiceShutdownHook(jobHistoryServer), new CompositeServiceShutdownHook(jobHistoryServer),
SHUTDOWN_HOOK_PRIORITY); SHUTDOWN_HOOK_PRIORITY);
@ -152,7 +155,12 @@ public class JobHistoryServer extends CompositeService {
jobHistoryServer.start(); jobHistoryServer.start();
} catch (Throwable t) { } catch (Throwable t) {
LOG.fatal("Error starting JobHistoryServer", 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);
} }
} }

View File

@ -63,14 +63,11 @@ public class TestJobHistoryServer {
private static RecordFactory recordFactory = RecordFactoryProvider private static RecordFactory recordFactory = RecordFactoryProvider
.getRecordFactory(null); .getRecordFactory(null);
JobHistoryServer historyServer=null; JobHistoryServer historyServer=null;
// simple test init/start/stop JobHistoryServer. Status should change. // simple test init/start/stop JobHistoryServer. Status should change.
@Test (timeout= 50000 ) @Test (timeout= 50000 )
public void testStartStopServer() throws Exception { public void testStartStopServer() throws Exception {
historyServer = new JobHistoryServer(); historyServer = new JobHistoryServer();
Configuration config = new Configuration(); Configuration config = new Configuration();
historyServer.init(config); historyServer.init(config);
@ -86,15 +83,9 @@ public class TestJobHistoryServer {
historyServer.stop(); historyServer.stop();
assertEquals(STATE.STOPPED, historyServer.getServiceState()); assertEquals(STATE.STOPPED, historyServer.getServiceState());
assertNotNull(historyService.getClientHandler().getConnectAddress()); assertNotNull(historyService.getClientHandler().getConnectAddress());
} }
//Test reports of JobHistoryServer. History server should get log files from MRApp and read them //Test reports of JobHistoryServer. History server should get log files from MRApp and read them
@Test (timeout= 50000 ) @Test (timeout= 50000 )
public void testReports() throws Exception { public void testReports() throws Exception {
Configuration config = new Configuration(); Configuration config = new Configuration();
@ -128,7 +119,6 @@ public class TestJobHistoryServer {
assertEquals(1, jobs.size()); assertEquals(1, jobs.size());
assertEquals("job_0_0000",jobs.keySet().iterator().next().toString()); assertEquals("job_0_0000",jobs.keySet().iterator().next().toString());
Task task = job.getTasks().values().iterator().next(); Task task = job.getTasks().values().iterator().next();
TaskAttempt attempt = task.getAttempts().values().iterator().next(); TaskAttempt attempt = task.getAttempts().values().iterator().next();
@ -188,14 +178,14 @@ public class TestJobHistoryServer {
assertEquals("", diagnosticResponse.getDiagnostics(0)); assertEquals("", diagnosticResponse.getDiagnostics(0));
} }
// test main method
// test launch method
@Test (timeout =60000) @Test (timeout =60000)
public void testMainMethod() throws Exception { public void testLaunch() throws Exception {
ExitUtil.disableSystemExit(); ExitUtil.disableSystemExit();
try { try {
JobHistoryServer.main(new String[0]); historyServer = JobHistoryServer.launchJobHistoryServer(new String[0]);
} catch (ExitUtil.ExitException e) { } catch (ExitUtil.ExitException e) {
assertEquals(0,e.status); assertEquals(0,e.status);
ExitUtil.resetFirstExitException(); ExitUtil.resetFirstExitException();