There are no nullability annotations that are acceptable.

Call.enqueue with null parameter throws NullPointerException
`code Call.enqueue` should add a null check. If it can't accepts `null`parameter then it should be annotated with `@NotNull`

``` java
java.lang.NullPointerException: Attempt to invoke interface method 'void retrofit2.Callback.onResponse(retrofit2.Call, retrofit2.Response)' on a null object reference
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:66)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6872)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
```

retrofit-mock/src/main/java/retrofit2/mock/BehaviorCall.java retrofit/src/main/java/retrofit2/ExecutorCallAdapterFactory.java retrofit/src/main/java/retrofit2/OkHttpCall.java
retrofit-mock/src/main/java/retrofit2/mock/BehaviorCall.java retrofit/src/main/java/retrofit2/ExecutorCallAdapterFactory.java retrofit/src/main/java/retrofit2/OkHttpCall.java
diff --git a/retrofit-mock/src/main/java/retrofit2/mock/BehaviorCall.java b/retrofit-mock/src/main/java/retrofit2/mock/BehaviorCall.java
index ac10878fa9..cfc92c5f79 100644
--- a/retrofit-mock/src/main/java/retrofit2/mock/BehaviorCall.java
+++ b/retrofit-mock/src/main/java/retrofit2/mock/BehaviorCall.java
@@ -52,6 +52,8 @@ final class BehaviorCall<T> implements Call<T> {
   }
 
   @Override public void enqueue(final Callback<T> callback) {
+    if (callback == null) throw new NullPointerException("callback == null");
+
     synchronized (this) {
       if (executed) throw new IllegalStateException("Already executed");
       executed = true;
diff --git a/retrofit/src/main/java/retrofit2/ExecutorCallAdapterFactory.java b/retrofit/src/main/java/retrofit2/ExecutorCallAdapterFactory.java
index 155dc528c5..95ecbf4b7e 100644
--- a/retrofit/src/main/java/retrofit2/ExecutorCallAdapterFactory.java
+++ b/retrofit/src/main/java/retrofit2/ExecutorCallAdapterFactory.java
@@ -55,6 +55,8 @@ static final class ExecutorCallbackCall<T> implements Call<T> {
     }
 
     @Override public void enqueue(final Callback<T> callback) {
+      if (callback == null) throw new NullPointerException("callback == null");
+
       delegate.enqueue(new Callback<T>() {
         @Override public void onResponse(final Call<T> call, final Response<T> response) {
           callbackExecutor.execute(new Runnable() {
diff --git a/retrofit/src/main/java/retrofit2/OkHttpCall.java b/retrofit/src/main/java/retrofit2/OkHttpCall.java
index c793fecd55..5aa102db25 100644
--- a/retrofit/src/main/java/retrofit2/OkHttpCall.java
+++ b/retrofit/src/main/java/retrofit2/OkHttpCall.java
@@ -69,6 +69,8 @@ final class OkHttpCall<T> implements Call<T> {
   }
 
   @Override public void enqueue(final Callback<T> callback) {
+    if (callback == null) throw new NullPointerException("callback == null");
+
     okhttp3.Call call;
     Throwable failure;
 
