Просмотр исходного кода

commit 2ad4f3e7779ba1096b399c6ae720be3abd33be03
Author: Devaraj Das <ddas@yahoo-inc.com>
Date: Mon Sep 20 01:49:11 2010 -0700

Fixes an NPE issue in JvmManger's runChild


git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-patches@1077715 13f79535-47bb-0310-9956-ffa450edef68

Owen O'Malley 14 лет назад
Родитель
Сommit
bd6e37b420
1 измененных файлов с 12 добавлено и 10 удалено
  1. 12 10
      src/mapred/org/apache/hadoop/mapred/JvmManager.java

+ 12 - 10
src/mapred/org/apache/hadoop/mapred/JvmManager.java

@@ -478,18 +478,20 @@ class JvmManager {
         int exitCode = 0;
         try {
           env.vargs.add(Integer.toString(jvmId.getId()));
-          //Launch the task controller to run task JVM
-          String user = jvmToRunningTask.get(jvmId).getTask().getUser();
-          TaskAttemptID taskAttemptId = 
-            jvmToRunningTask.get(jvmId).getTask().getTaskID();
-          String taskAttemptIdStr = 
-            jvmToRunningTask.get(jvmId).getTask().isTaskCleanupTask() ? 
+          TaskRunner runner = jvmToRunningTask.get(jvmId);
+          if (runner != null) {
+            Task task = runner.getTask();
+            //Launch the task controller to run task JVM
+            String user = task.getUser();
+            TaskAttemptID taskAttemptId = task.getTaskID();
+            String taskAttemptIdStr = task.isTaskCleanupTask() ? 
                 (taskAttemptId.toString() + TaskTracker.TASK_CLEANUP_SUFFIX) :
                   taskAttemptId.toString(); 
-          exitCode = tracker.getTaskController().launchTask(user,
-              jvmId.jobId.toString(), taskAttemptIdStr, env.setup,
-              env.vargs, env.workDir, env.stdout.toString(),
-              env.stderr.toString());
+                exitCode = tracker.getTaskController().launchTask(user,
+                    jvmId.jobId.toString(), taskAttemptIdStr, env.setup,
+                    env.vargs, env.workDir, env.stdout.toString(),
+                    env.stderr.toString());
+          }
         } catch (IOException ioe) {
           // do nothing
           // error and output are appropriately redirected