You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tez.apache.org by bi...@apache.org on 2014/03/03 19:23:43 UTC

git commit: TEZ-884. Add parameter checking for context related user API's (Tsuyoshi Ozawa via bikas)

Repository: incubator-tez
Updated Branches:
  refs/heads/master ae84f1d23 -> 2ff672075


TEZ-884. Add parameter checking for context related user API's (Tsuyoshi Ozawa via bikas)


Project: http://git-wip-us.apache.org/repos/asf/incubator-tez/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tez/commit/2ff67207
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tez/tree/2ff67207
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tez/diff/2ff67207

Branch: refs/heads/master
Commit: 2ff672075a5ab2a364e9d3b3ffcf6fa8400a3ca9
Parents: ae84f1d
Author: Bikas Saha <bi...@apache.org>
Authored: Mon Mar 3 10:23:41 2014 -0800
Committer: Bikas Saha <bi...@apache.org>
Committed: Mon Mar 3 10:23:41 2014 -0800

----------------------------------------------------------------------
 .../main/java/org/apache/tez/dag/app/DAGAppMaster.java |  2 ++
 .../java/org/apache/tez/dag/app/dag/impl/Edge.java     |  7 ++++++-
 .../dag/app/dag/impl/OutputCommitterContextImpl.java   |  8 +++++++-
 .../dag/impl/TezRootInputInitializerContextImpl.java   |  7 +++++++
 .../org/apache/tez/dag/app/dag/impl/VertexManager.java |  7 +++++++
 .../org/apache/tez/dag/app/dag/impl/TestDAGImpl.java   |  4 ++++
 .../apache/tez/dag/app/dag/impl/TestVertexImpl.java    |  3 +++
 .../org/apache/tez/runtime/api/impl/EventMetaData.java |  7 ++++++-
 .../java/org/apache/tez/runtime/api/impl/TaskSpec.java | 13 +++++++++++--
 .../tez/runtime/api/impl/TezInputContextImpl.java      |  8 +++++++-
 .../tez/runtime/api/impl/TezOutputContextImpl.java     |  6 +++++-
 .../tez/runtime/api/impl/TezProcessorContextImpl.java  |  5 ++++-
 .../tez/runtime/api/impl/TezTaskContextImpl.java       | 10 ++++++++++
 .../library/output/TestOnFileUnorderedKVOutput.java    |  2 +-
 14 files changed, 80 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2ff67207/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java
----------------------------------------------------------------------
diff --git a/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java b/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java
index a481aaa..1ce07fb 100644
--- a/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java
+++ b/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java
@@ -18,6 +18,7 @@
 
 package org.apache.tez.dag.app;
 
+import static com.google.common.base.Preconditions.checkNotNull;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -1016,6 +1017,7 @@ public class DAGAppMaster extends AbstractService {
     private final Lock wLock = rwLock.writeLock();
     private final EventHandler eventHandler;
     public RunningAppContext(Configuration config) {
+      checkNotNull(config, "config is null");
       this.conf = config;
       this.eventHandler = dispatcher.getEventHandler();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2ff67207/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/Edge.java
----------------------------------------------------------------------
diff --git a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/Edge.java b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/Edge.java
index 7b4a120..aecb5d2 100644
--- a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/Edge.java
+++ b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/Edge.java
@@ -23,6 +23,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import javax.annotation.Nullable;
 import org.apache.hadoop.yarn.event.EventHandler;
 import org.apache.tez.dag.api.EdgeManager;
 import org.apache.tez.dag.api.EdgeManagerContext;
@@ -49,6 +50,7 @@ import org.apache.tez.runtime.api.impl.TezEvent;
 import org.apache.tez.runtime.api.impl.EventMetaData.EventProducerConsumerType;
 
 import com.google.common.collect.Maps;
+import static com.google.common.base.Preconditions.checkNotNull;
 
 public class Edge {
 
@@ -58,7 +60,10 @@ public class Edge {
     private final String destVertexName;
     private final byte[] userPayload;
 
-    EdgeManagerContextImpl(String srcVertexName, String destVertexName, byte[] userPayload) {
+    EdgeManagerContextImpl(String srcVertexName, String destVertexName,
+        @Nullable byte[] userPayload) {
+      checkNotNull(srcVertexName, "srcVertexName is null");
+      checkNotNull(destVertexName, "destVertexName is null");
       this.srcVertexName = srcVertexName;
       this.destVertexName = destVertexName;
       this.userPayload = userPayload;

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2ff67207/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/OutputCommitterContextImpl.java
----------------------------------------------------------------------
diff --git a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/OutputCommitterContextImpl.java b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/OutputCommitterContextImpl.java
index 68c8835..070bd75 100644
--- a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/OutputCommitterContextImpl.java
+++ b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/OutputCommitterContextImpl.java
@@ -18,6 +18,8 @@
 
 package org.apache.tez.dag.app.dag.impl;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+import javax.annotation.Nullable;
 import org.apache.hadoop.yarn.api.records.ApplicationId;
 import org.apache.tez.runtime.api.OutputCommitterContext;
 
@@ -35,7 +37,11 @@ public class OutputCommitterContextImpl implements OutputCommitterContext {
       String dagName,
       String vertexName,
       String outputName,
-      byte[] userPayload) {
+      @Nullable byte[] userPayload) {
+    checkNotNull(applicationId, "applicationId is null");
+    checkNotNull(dagName, "dagName is null");
+    checkNotNull(vertexName, "vertexName is null");
+    checkNotNull(outputName, "outputName is null");
     this.applicationId = applicationId;
     this.dagAttemptNumber = dagAttemptNumber;
     this.dagName = dagName;

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2ff67207/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/TezRootInputInitializerContextImpl.java
----------------------------------------------------------------------
diff --git a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/TezRootInputInitializerContextImpl.java b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/TezRootInputInitializerContextImpl.java
index c55142f..5ea02b8 100644
--- a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/TezRootInputInitializerContextImpl.java
+++ b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/TezRootInputInitializerContextImpl.java
@@ -18,6 +18,7 @@
 
 package org.apache.tez.dag.app.dag.impl;
 
+import static com.google.common.base.Preconditions.checkNotNull;
 import org.apache.hadoop.yarn.api.records.ApplicationId;
 import org.apache.hadoop.yarn.api.records.Resource;
 import org.apache.tez.dag.api.InputDescriptor;
@@ -42,6 +43,12 @@ public class TezRootInputInitializerContextImpl implements
       String dagName, String vertexName, String inputName,
       InputDescriptor inputDescriptor, int numTasks, int numClusterNodes,
       Resource vertexTaskResource, Resource totalResource) {
+    checkNotNull(vertexID, "vertexID is null");
+    checkNotNull(dagName, "dagName is null");
+    checkNotNull(inputName, "inputName is null");
+    checkNotNull(inputDescriptor, "inputDescriptor is null");
+    checkNotNull(vertexTaskResource, "numTasks is null");
+    checkNotNull(totalResource, "totalResource is null");
     this.vertexID = vertexID;
     this.dagName = dagName;
     this.inputName = inputName;

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2ff67207/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/VertexManager.java
----------------------------------------------------------------------
diff --git a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/VertexManager.java b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/VertexManager.java
index 4b110b2..e08e7ed 100644
--- a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/VertexManager.java
+++ b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/VertexManager.java
@@ -18,6 +18,7 @@
 
 package org.apache.tez.dag.app.dag.impl;
 
+import static com.google.common.base.Preconditions.checkNotNull;
 import java.io.IOException;
 import java.util.Collection;
 import java.util.List;
@@ -179,6 +180,9 @@ public class VertexManager {
   
   public VertexManager(VertexManagerPlugin plugin, 
       Vertex managedVertex, AppContext appContext) {
+    checkNotNull(plugin, "plugin is null");
+    checkNotNull(managedVertex, "managedVertex is null");
+    checkNotNull(appContext, "appContext is null");
     this.plugin = plugin;
     this.managedVertex = managedVertex;
     this.appContext = appContext;
@@ -186,6 +190,9 @@ public class VertexManager {
   
   public VertexManager(VertexManagerPluginDescriptor pluginDesc, 
       Vertex managedVertex, AppContext appContext) {
+    checkNotNull(pluginDesc, "pluginDesc is null");
+    checkNotNull(managedVertex, "managedVertex is null");
+    checkNotNull(appContext, "appContext is null");
     this.pluginDesc = pluginDesc;
     this.managedVertex = managedVertex;
     this.appContext = appContext;

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2ff67207/tez-dag/src/test/java/org/apache/tez/dag/app/dag/impl/TestDAGImpl.java
----------------------------------------------------------------------
diff --git a/tez-dag/src/test/java/org/apache/tez/dag/app/dag/impl/TestDAGImpl.java b/tez-dag/src/test/java/org/apache/tez/dag/app/dag/impl/TestDAGImpl.java
index 1b66a4b..60c7b31 100644
--- a/tez-dag/src/test/java/org/apache/tez/dag/app/dag/impl/TestDAGImpl.java
+++ b/tez-dag/src/test/java/org/apache/tez/dag/app/dag/impl/TestDAGImpl.java
@@ -592,6 +592,7 @@ public class TestDAGImpl {
     historyEventHandler = mock(HistoryEventHandler.class);
     doReturn(conf).when(appContext).getAMConf();
     doReturn(appAttemptId).when(appContext).getApplicationAttemptId();
+    doReturn(appAttemptId.getApplicationId()).when(appContext).getApplicationID();
     doReturn(dagId).when(appContext).getCurrentDAGID();
     doReturn(historyEventHandler).when(appContext).getHistoryHandler();
     dag = new DAGImpl(dagId, conf, dagPlan,
@@ -608,6 +609,7 @@ public class TestDAGImpl {
     doReturn(conf).when(mrrAppContext).getAMConf();
     doReturn(mrrDag).when(mrrAppContext).getCurrentDAG();
     doReturn(appAttemptId).when(mrrAppContext).getApplicationAttemptId();
+    doReturn(appAttemptId.getApplicationId()).when(mrrAppContext).getApplicationID();
     doReturn(historyEventHandler).when(mrrAppContext).getHistoryHandler();
     groupAppContext = mock(AppContext.class);
     groupDagId = TezDAGID.getInstance(appAttemptId.getApplicationId(), 3);
@@ -619,6 +621,8 @@ public class TestDAGImpl {
     doReturn(conf).when(groupAppContext).getAMConf();
     doReturn(groupDag).when(groupAppContext).getCurrentDAG();
     doReturn(appAttemptId).when(groupAppContext).getApplicationAttemptId();
+    doReturn(appAttemptId.getApplicationId())
+        .when(groupAppContext).getApplicationID();
     doReturn(historyEventHandler).when(groupAppContext).getHistoryHandler();
     taskEventDispatcher = new TaskEventDispatcher();
     dispatcher.register(TaskEventType.class, taskEventDispatcher);

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2ff67207/tez-dag/src/test/java/org/apache/tez/dag/app/dag/impl/TestVertexImpl.java
----------------------------------------------------------------------
diff --git a/tez-dag/src/test/java/org/apache/tez/dag/app/dag/impl/TestVertexImpl.java b/tez-dag/src/test/java/org/apache/tez/dag/app/dag/impl/TestVertexImpl.java
index 1a14b15..d435bda 100644
--- a/tez-dag/src/test/java/org/apache/tez/dag/app/dag/impl/TestVertexImpl.java
+++ b/tez-dag/src/test/java/org/apache/tez/dag/app/dag/impl/TestVertexImpl.java
@@ -1191,6 +1191,7 @@ public class TestVertexImpl {
   }
 
   public void setupPostDagCreation() {
+    String dagName = "dag0";
     dispatcher = new DrainDispatcher();
     appContext = mock(AppContext.class);
     historyEventHandler = mock(HistoryEventHandler.class);
@@ -1203,7 +1204,9 @@ public class TestVertexImpl {
     }
     DAG dag = mock(DAG.class);
     doReturn(ugi).when(dag).getDagUGI();
+    doReturn(dagName).when(dag).getName();
     doReturn(appAttemptId).when(appContext).getApplicationAttemptId();
+    doReturn(appAttemptId.getApplicationId()).when(appContext).getApplicationID();
     doReturn(dag).when(appContext).getCurrentDAG();
     doReturn(conf).when(appContext).getAMConf();
     doReturn(new Credentials()).when(dag).getCredentials();

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2ff67207/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/EventMetaData.java
----------------------------------------------------------------------
diff --git a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/EventMetaData.java b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/EventMetaData.java
index 77d266a..c05ec57 100644
--- a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/EventMetaData.java
+++ b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/EventMetaData.java
@@ -18,10 +18,12 @@
 
 package org.apache.tez.runtime.api.impl;
 
+import static com.google.common.base.Preconditions.checkNotNull;
 import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 
+import javax.annotation.Nullable;
 import org.apache.hadoop.io.Writable;
 import org.apache.hadoop.util.StringInterner;
 import org.apache.tez.dag.records.TezTaskAttemptID;
@@ -65,7 +67,10 @@ public class EventMetaData implements Writable {
 
   public EventMetaData(EventProducerConsumerType generator,
       String taskVertexName, String edgeVertexName,
-      TezTaskAttemptID taskAttemptID) {
+      @Nullable TezTaskAttemptID taskAttemptID) {
+    checkNotNull(generator, "generator is null");
+    checkNotNull(taskVertexName, "taskVertexName is null");
+    checkNotNull(edgeVertexName, "edgeVertexName is null");
     this.producerConsumerType = generator;
     this.taskVertexName = StringInterner.weakIntern(taskVertexName);
     this.edgeVertexName = StringInterner.weakIntern(edgeVertexName);

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2ff67207/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TaskSpec.java
----------------------------------------------------------------------
diff --git a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TaskSpec.java b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TaskSpec.java
index 6466cdd..3469068 100644
--- a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TaskSpec.java
+++ b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TaskSpec.java
@@ -17,12 +17,16 @@
 
 package org.apache.tez.runtime.api.impl;
 
+import com.google.common.base.Optional;
+import static com.google.common.base.Preconditions.checkNotNull;
 import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
+import javax.annotation.Nullable;
 import org.apache.hadoop.io.Writable;
 import org.apache.hadoop.util.StringInterner;
 import org.apache.tez.dag.api.ProcessorDescriptor;
@@ -47,8 +51,13 @@ public class TaskSpec implements Writable {
       String dagName, String vertexName,
       ProcessorDescriptor processorDescriptor,
       List<InputSpec> inputSpecList, List<OutputSpec> outputSpecList, 
-      List<GroupInputSpec> groupInputSpecList) {
-    // TODO: TEZ-884 null check
+      @Nullable List<GroupInputSpec> groupInputSpecList) {
+    checkNotNull(taskAttemptID, "taskAttemptID is null");
+    checkNotNull(dagName, "dagName is null");
+    checkNotNull(vertexName, "vertexName is null");
+    checkNotNull(processorDescriptor, "processorDescriptor is null");
+    checkNotNull(inputSpecList, "inputSpecList is null");
+    checkNotNull(outputSpecList, "outputSpecList is null");
     this.taskAttemptId = taskAttemptID;
     this.dagName = StringInterner.weakIntern(dagName);
     this.vertexName = StringInterner.weakIntern(vertexName);

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2ff67207/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezInputContextImpl.java
----------------------------------------------------------------------
diff --git a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezInputContextImpl.java b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezInputContextImpl.java
index c138a58..1daf211 100644
--- a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezInputContextImpl.java
+++ b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezInputContextImpl.java
@@ -18,11 +18,13 @@
 
 package org.apache.tez.runtime.api.impl;
 
+import static com.google.common.base.Preconditions.checkNotNull;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
+import javax.annotation.Nullable;
 import org.apache.hadoop.classification.InterfaceAudience.Private;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.tez.common.counters.TezCounters;
@@ -51,7 +53,7 @@ public class TezInputContextImpl extends TezTaskContextImpl
   public TezInputContextImpl(Configuration conf, int appAttemptNumber,
       TezUmbilical tezUmbilical, String dagName, String taskVertexName,
       String sourceVertexName, TezTaskAttemptID taskAttemptID,
-      TezCounters counters, int inputIndex, byte[] userPayload,
+      TezCounters counters, int inputIndex, @Nullable byte[] userPayload,
       RuntimeTask runtimeTask, Map<String, ByteBuffer> serviceConsumerMetadata,
       Map<String, String> auxServiceEnv, MemoryDistributor memDist,
       InputDescriptor inputDescriptor,  Input input, InputReadyTracker inputReadyTracker) {
@@ -59,6 +61,10 @@ public class TezInputContextImpl extends TezTaskContextImpl
         wrapCounters(counters, taskVertexName, sourceVertexName, conf),
         runtimeTask, tezUmbilical, serviceConsumerMetadata,
         auxServiceEnv, memDist, inputDescriptor);
+    checkNotNull(inputIndex, "inputIndex is null");
+    checkNotNull(sourceVertexName, "sourceVertexName is null");
+    checkNotNull(input, "input is null");
+    checkNotNull(inputReadyTracker, "inputReadyTracker is null");
     this.userPayload = userPayload;
     this.inputIndex = inputIndex;
     this.sourceVertexName = sourceVertexName;

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2ff67207/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezOutputContextImpl.java
----------------------------------------------------------------------
diff --git a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezOutputContextImpl.java b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezOutputContextImpl.java
index 1a2cfcb..6ba8581 100644
--- a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezOutputContextImpl.java
+++ b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezOutputContextImpl.java
@@ -18,11 +18,13 @@
 
 package org.apache.tez.runtime.api.impl;
 
+import static com.google.common.base.Preconditions.checkNotNull;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
+import javax.annotation.Nullable;
 import org.apache.hadoop.classification.InterfaceAudience.Private;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.tez.common.counters.TezCounters;
@@ -49,7 +51,7 @@ public class TezOutputContextImpl extends TezTaskContextImpl
       String taskVertexName,
       String destinationVertexName,
       TezTaskAttemptID taskAttemptID, TezCounters counters, int outputIndex,
-      byte[] userPayload, RuntimeTask runtimeTask,
+      @Nullable byte[] userPayload, RuntimeTask runtimeTask,
       Map<String, ByteBuffer> serviceConsumerMetadata,
       Map<String, String> auxServiceEnv, MemoryDistributor memDist,
       OutputDescriptor outputDescriptor) {
@@ -57,6 +59,8 @@ public class TezOutputContextImpl extends TezTaskContextImpl
         wrapCounters(counters, taskVertexName, destinationVertexName, conf),
         runtimeTask, tezUmbilical, serviceConsumerMetadata,
         auxServiceEnv, memDist, outputDescriptor);
+    checkNotNull(outputIndex, "outputIndex is null");
+    checkNotNull(destinationVertexName, "destinationVertexName is null");
     this.userPayload = userPayload;
     this.outputIndex = outputIndex;
     this.destinationVertexName = destinationVertexName;

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2ff67207/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezProcessorContextImpl.java
----------------------------------------------------------------------
diff --git a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezProcessorContextImpl.java b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezProcessorContextImpl.java
index 2f9ebfd..091dbdc 100644
--- a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezProcessorContextImpl.java
+++ b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezProcessorContextImpl.java
@@ -18,6 +18,7 @@
 
 package org.apache.tez.runtime.api.impl;
 
+import static com.google.common.base.Preconditions.checkNotNull;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
@@ -25,6 +26,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
+import javax.annotation.Nullable;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
@@ -50,13 +52,14 @@ public class TezProcessorContextImpl extends TezTaskContextImpl implements TezPr
   public TezProcessorContextImpl(Configuration conf, int appAttemptNumber,
       TezUmbilical tezUmbilical, String dagName, String vertexName,
       TezTaskAttemptID taskAttemptID, TezCounters counters,
-      byte[] userPayload, RuntimeTask runtimeTask,
+      @Nullable byte[] userPayload, RuntimeTask runtimeTask,
       Map<String, ByteBuffer> serviceConsumerMetadata,
       Map<String, String> auxServiceEnv, MemoryDistributor memDist,
       ProcessorDescriptor processorDescriptor, InputReadyTracker inputReadyTracker) {
     super(conf, appAttemptNumber, dagName, vertexName, taskAttemptID,
         counters, runtimeTask, tezUmbilical, serviceConsumerMetadata,
         auxServiceEnv, memDist, processorDescriptor);
+    checkNotNull(inputReadyTracker, "inputReadyTracker is null");
     this.userPayload = userPayload;
     this.sourceInfo = new EventMetaData(EventProducerConsumerType.PROCESSOR,
         taskVertexName, "", taskAttemptID);

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2ff67207/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezTaskContextImpl.java
----------------------------------------------------------------------
diff --git a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezTaskContextImpl.java b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezTaskContextImpl.java
index 53f6a56..e041c23 100644
--- a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezTaskContextImpl.java
+++ b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezTaskContextImpl.java
@@ -18,6 +18,7 @@
 
 package org.apache.tez.runtime.api.impl;
 
+import static com.google.common.base.Preconditions.checkNotNull;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
 import java.util.Map;
@@ -65,6 +66,15 @@ public abstract class TezTaskContextImpl implements TezTaskContext {
       TezUmbilical tezUmbilical, Map<String, ByteBuffer> serviceConsumerMetadata,
       Map<String, String> auxServiceEnv, MemoryDistributor memDist,
       TezEntityDescriptor descriptor) {
+    checkNotNull(conf, "conf is null");
+    checkNotNull(dagName, "dagName is null");
+    checkNotNull(taskVertexName, "taskVertexName is null");
+    checkNotNull(taskAttemptID, "taskAttemptId is null");
+    checkNotNull(counters, "counters is null");
+    checkNotNull(runtimeTask, "runtimeTask is null");
+    checkNotNull(auxServiceEnv, "auxServiceEnv is null");
+    checkNotNull(memDist, "memDist is null");
+    checkNotNull(descriptor, "descriptor is null");
     this.conf = conf;
     this.dagName = dagName;
     this.taskVertexName = taskVertexName;

http://git-wip-us.apache.org/repos/asf/incubator-tez/blob/2ff67207/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/output/TestOnFileUnorderedKVOutput.java
----------------------------------------------------------------------
diff --git a/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/output/TestOnFileUnorderedKVOutput.java b/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/output/TestOnFileUnorderedKVOutput.java
index 61d7019..64a3bdf 100644
--- a/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/output/TestOnFileUnorderedKVOutput.java
+++ b/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/output/TestOnFileUnorderedKVOutput.java
@@ -109,7 +109,7 @@ public class TestOnFileUnorderedKVOutput {
     TezTaskAttemptID taskAttemptID = TezTaskAttemptID.getInstance(taskID, 1);
     TezCounters counters = new TezCounters();
     byte[] userPayload = TezUtils.createUserPayloadFromConf(conf);
-    RuntimeTask runtimeTask = null;
+    RuntimeTask runtimeTask = mock(RuntimeTask.class);
     
     int shufflePort = 2112;
     Map<String, String> auxEnv = new HashMap<String, String>();