all: update to proto 3.5.0

diff --git a/.travis.yml b/.travis.yml
index bceafee..5fe34c3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,7 +5,7 @@
 env:
   global:
     - GRADLE_OPTS=-Xmx512m
-    - PROTOBUF_VERSION=3.4.0
+    - PROTOBUF_VERSION=3.5.0
     - LDFLAGS=-L/tmp/protobuf/lib
     - CXXFLAGS=-I/tmp/protobuf/include
     - LD_LIBRARY_PATH=/tmp/protobuf/lib
diff --git a/COMPILING.md b/COMPILING.md
index 40d21b1..6b3c642 100644
--- a/COMPILING.md
+++ b/COMPILING.md
@@ -33,7 +33,7 @@
 ```
 $ git clone https://github.com/google/protobuf.git
 $ cd protobuf
-$ git checkout v3.4.0
+$ git checkout v3.5.0
 $ ./autogen.sh
 $ ./configure
 $ make
@@ -72,16 +72,16 @@
 Gradle to find protobuf:
 ```
 .\gradlew install ^
-    -PvcProtobufInclude=C:\path\to\protobuf-3.4.0\src ^
-    -PvcProtobufLibs=C:\path\to\protobuf-3.4.0\vsprojects\Release ^
+    -PvcProtobufInclude=C:\path\to\protobuf-3.5.0\src ^
+    -PvcProtobufLibs=C:\path\to\protobuf-3.5.0\vsprojects\Release ^
     -PtargetArch=x86_32
 ```
 
 Since specifying those properties every build is bothersome, you can instead
 create ``<project-root>\gradle.properties`` with contents like:
 ```
-vcProtobufInclude=C:\\path\\to\\protobuf-3.4.0\\src
-vcProtobufLibs=C:\\path\\to\\protobuf-3.4.0\\vsprojects\\Release
+vcProtobufInclude=C:\\path\\to\\protobuf-3.5.0\\src
+vcProtobufLibs=C:\\path\\to\\protobuf-3.5.0\\vsprojects\\Release
 targetArch=x86_32
 ```
 
diff --git a/README.md b/README.md
index 777fca6..d73de63 100644
--- a/README.md
+++ b/README.md
@@ -85,7 +85,7 @@
       <artifactId>protobuf-maven-plugin</artifactId>
       <version>0.5.0</version>
       <configuration>
-        <protocArtifact>com.google.protobuf:protoc:3.4.0:exe:${os.detected.classifier}</protocArtifact>
+        <protocArtifact>com.google.protobuf:protoc:3.5.0:exe:${os.detected.classifier}</protocArtifact>
         <pluginId>grpc-java</pluginId>
         <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.8.0:exe:${os.detected.classifier}</pluginArtifact>
       </configuration>
@@ -123,7 +123,7 @@
 
 protobuf {
   protoc {
-    artifact = "com.google.protobuf:protoc:3.4.0"
+    artifact = "com.google.protobuf:protoc:3.5.0"
   }
   plugins {
     grpc {
diff --git a/android-interop-testing/app/build.gradle b/android-interop-testing/app/build.gradle
index 421aa87..f496946 100644
--- a/android-interop-testing/app/build.gradle
+++ b/android-interop-testing/app/build.gradle
@@ -30,7 +30,7 @@
 
 protobuf {
     protoc {
-        artifact = 'com.google.protobuf:protoc:3.4.0'
+        artifact = 'com.google.protobuf:protoc:3.5.0'
     }
     plugins {
         grpc {
diff --git a/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Control.java b/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Control.java
index 691b438..2508a95 100644
--- a/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Control.java
+++ b/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Control.java
@@ -432,6 +432,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -850,7 +853,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new PoissonParams(input, extensionRegistry);
+        return new PoissonParams(input, extensionRegistry);
       }
     };
 
@@ -903,6 +906,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
       try {
@@ -1244,7 +1250,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ClosedLoopParams(input, extensionRegistry);
+        return new ClosedLoopParams(input, extensionRegistry);
       }
     };
 
@@ -1320,6 +1326,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -2133,7 +2142,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new LoadParams(input, extensionRegistry);
+        return new LoadParams(input, extensionRegistry);
       }
     };
 
@@ -2202,6 +2211,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -2727,7 +2739,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new SecurityParams(input, extensionRegistry);
+        return new SecurityParams(input, extensionRegistry);
       }
     };
 
@@ -2803,6 +2815,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -3560,7 +3575,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ChannelArg(input, extensionRegistry);
+        return new ChannelArg(input, extensionRegistry);
       }
     };
 
@@ -3846,6 +3861,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -6396,7 +6414,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ClientConfig(input, extensionRegistry);
+        return new ClientConfig(input, extensionRegistry);
       }
     };
 
@@ -6457,6 +6475,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -6975,7 +6996,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ClientStatus(input, extensionRegistry);
+        return new ClientStatus(input, extensionRegistry);
       }
     };
 
@@ -7037,6 +7058,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -7452,7 +7476,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new Mark(input, extensionRegistry);
+        return new Mark(input, extensionRegistry);
       }
     };
 
@@ -7528,6 +7552,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -8341,7 +8368,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ClientArgs(input, extensionRegistry);
+        return new ClientArgs(input, extensionRegistry);
       }
     };
 
@@ -8531,6 +8558,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -10045,7 +10075,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ServerConfig(input, extensionRegistry);
+        return new ServerConfig(input, extensionRegistry);
       }
     };
 
@@ -10121,6 +10151,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -10934,7 +10967,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ServerArgs(input, extensionRegistry);
+        return new ServerArgs(input, extensionRegistry);
       }
     };
 
@@ -11015,6 +11048,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -11679,7 +11715,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ServerStatus(input, extensionRegistry);
+        return new ServerStatus(input, extensionRegistry);
       }
     };
 
@@ -11727,6 +11763,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
       try {
@@ -12063,7 +12102,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new CoreRequest(input, extensionRegistry);
+        return new CoreRequest(input, extensionRegistry);
       }
     };
 
@@ -12121,6 +12160,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -12531,7 +12573,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new CoreResponse(input, extensionRegistry);
+        return new CoreResponse(input, extensionRegistry);
       }
     };
 
@@ -12579,6 +12621,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
       try {
@@ -12915,7 +12960,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new Void(input, extensionRegistry);
+        return new Void(input, extensionRegistry);
       }
     };
 
@@ -13086,6 +13131,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -14404,7 +14452,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new Scenario(input, extensionRegistry);
+        return new Scenario(input, extensionRegistry);
       }
     };
 
@@ -14481,6 +14529,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -15166,7 +15217,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new Scenarios(input, extensionRegistry);
+        return new Scenarios(input, extensionRegistry);
       }
     };
 
@@ -15355,6 +15406,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -16817,7 +16871,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ScenarioResultSummary(input, extensionRegistry);
+        return new ScenarioResultSummary(input, extensionRegistry);
       }
     };
 
@@ -17145,6 +17199,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -20026,7 +20083,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ScenarioResult(input, extensionRegistry);
+        return new ScenarioResult(input, extensionRegistry);
       }
     };
 
@@ -20158,7 +20215,7 @@
       "ad\"C\n\016SecurityParams\022\023\n\013use_test_ca\030\001 \001(" +
       "\010\022\034\n\024server_host_override\030\002 \001(\t\"M\n\nChann" +
       "elArg\022\014\n\004name\030\001 \001(\t\022\023\n\tstr_value\030\002 \001(\tH\000" +
-      "\022\023\n\tint_value\030\003 \001(\005H\000B\007\n\005value\"\275\004\n\014Clien",
+      "\022\023\n\tint_value\030\003 \001(\005H\000B\007\n\005value\"\275\004\n\014Clien" +
       "tConfig\022\026\n\016server_targets\030\001 \003(\t\022-\n\013clien" +
       "t_type\030\002 \001(\0162\030.grpc.testing.ClientType\0225" +
       "\n\017security_params\030\003 \001(\0132\034.grpc.testing.S" +
@@ -20168,7 +20225,7 @@
       " \001(\0162\025.grpc.testing.RpcType\022-\n\013load_para" +
       "ms\030\n \001(\0132\030.grpc.testing.LoadParams\0223\n\016pa" +
       "yload_config\030\013 \001(\0132\033.grpc.testing.Payloa" +
-      "dConfig\0227\n\020histogram_params\030\014 \001(\0132\035.grpc",
+      "dConfig\0227\n\020histogram_params\030\014 \001(\0132\035.grpc" +
       ".testing.HistogramParams\022\021\n\tcore_list\030\r " +
       "\003(\005\022\022\n\ncore_limit\030\016 \001(\005\022\030\n\020other_client_" +
       "api\030\017 \001(\t\022.\n\014channel_args\030\020 \003(\0132\030.grpc.t" +
@@ -20178,7 +20235,7 @@
       "t\030\001 \001(\010\"h\n\nClientArgs\022+\n\005setup\030\001 \001(\0132\032.g" +
       "rpc.testing.ClientConfigH\000\022\"\n\004mark\030\002 \001(\013" +
       "2\022.grpc.testing.MarkH\000B\t\n\007argtype\"\264\002\n\014Se" +
-      "rverConfig\022-\n\013server_type\030\001 \001(\0162\030.grpc.t",
+      "rverConfig\022-\n\013server_type\030\001 \001(\0162\030.grpc.t" +
       "esting.ServerType\0225\n\017security_params\030\002 \001" +
       "(\0132\034.grpc.testing.SecurityParams\022\014\n\004port" +
       "\030\004 \001(\005\022\034\n\024async_server_threads\030\007 \001(\005\022\022\n\n" +
@@ -20188,7 +20245,7 @@
       "source_quota_size\030\351\007 \001(\005\"h\n\nServerArgs\022+" +
       "\n\005setup\030\001 \001(\0132\032.grpc.testing.ServerConfi" +
       "gH\000\022\"\n\004mark\030\002 \001(\0132\022.grpc.testing.MarkH\000B" +
-      "\t\n\007argtype\"U\n\014ServerStatus\022(\n\005stats\030\001 \001(",
+      "\t\n\007argtype\"U\n\014ServerStatus\022(\n\005stats\030\001 \001(" +
       "\0132\031.grpc.testing.ServerStats\022\014\n\004port\030\002 \001" +
       "(\005\022\r\n\005cores\030\003 \001(\005\"\r\n\013CoreRequest\"\035\n\014Core" +
       "Response\022\r\n\005cores\030\001 \001(\005\"\006\n\004Void\"\375\001\n\010Scen" +
@@ -20198,7 +20255,7 @@
       ".testing.ServerConfig\022\023\n\013num_servers\030\005 \001" +
       "(\005\022\026\n\016warmup_seconds\030\006 \001(\005\022\031\n\021benchmark_" +
       "seconds\030\007 \001(\005\022 \n\030spawn_local_worker_coun" +
-      "t\030\010 \001(\005\"6\n\tScenarios\022)\n\tscenarios\030\001 \003(\0132",
+      "t\030\010 \001(\005\"6\n\tScenarios\022)\n\tscenarios\030\001 \003(\0132" +
       "\026.grpc.testing.Scenario\"\274\003\n\025ScenarioResu" +
       "ltSummary\022\013\n\003qps\030\001 \001(\001\022\033\n\023qps_per_server" +
       "_core\030\002 \001(\001\022\032\n\022server_system_time\030\003 \001(\001\022" +
@@ -20208,7 +20265,7 @@
       "\022\n\nlatency_95\030\t \001(\001\022\022\n\nlatency_99\030\n \001(\001\022" +
       "\023\n\013latency_999\030\013 \001(\001\022\030\n\020server_cpu_usage" +
       "\030\014 \001(\001\022&\n\036successful_requests_per_second" +
-      "\030\r \001(\001\022\"\n\032failed_requests_per_second\030\016 \001",
+      "\030\r \001(\001\022\"\n\032failed_requests_per_second\030\016 \001" +
       "(\001\022 \n\030client_polls_per_request\030\017 \001(\001\022 \n\030" +
       "server_polls_per_request\030\020 \001(\001\"\203\003\n\016Scena" +
       "rioResult\022(\n\010scenario\030\001 \001(\0132\026.grpc.testi" +
@@ -20218,7 +20275,7 @@
       "tats\030\004 \003(\0132\031.grpc.testing.ServerStats\022\024\n" +
       "\014server_cores\030\005 \003(\005\0224\n\007summary\030\006 \001(\0132#.g" +
       "rpc.testing.ScenarioResultSummary\022\026\n\016cli" +
-      "ent_success\030\007 \003(\010\022\026\n\016server_success\030\010 \003(",
+      "ent_success\030\007 \003(\010\022\026\n\016server_success\030\010 \003(" +
       "\010\0229\n\017request_results\030\t \003(\0132 .grpc.testin" +
       "g.RequestResultCount*A\n\nClientType\022\017\n\013SY" +
       "NC_CLIENT\020\000\022\020\n\014ASYNC_CLIENT\020\001\022\020\n\014OTHER_C" +
diff --git a/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Messages.java b/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Messages.java
index f2f026d..34591b2 100644
--- a/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Messages.java
+++ b/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Messages.java
@@ -161,6 +161,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -578,7 +581,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new BoolValue(input, extensionRegistry);
+        return new BoolValue(input, extensionRegistry);
       }
     };
 
@@ -660,6 +663,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -1194,7 +1200,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new Payload(input, extensionRegistry);
+        return new Payload(input, extensionRegistry);
       }
     };
 
@@ -1264,6 +1270,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -1789,7 +1798,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new EchoStatus(input, extensionRegistry);
+        return new EchoStatus(input, extensionRegistry);
       }
     };
 
@@ -2002,6 +2011,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -3640,7 +3652,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new SimpleRequest(input, extensionRegistry);
+        return new SimpleRequest(input, extensionRegistry);
       }
     };
 
@@ -3757,6 +3769,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -4642,7 +4657,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new SimpleResponse(input, extensionRegistry);
+        return new SimpleResponse(input, extensionRegistry);
       }
     };
 
@@ -4753,6 +4768,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -5588,7 +5606,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new StreamingInputCallRequest(input, extensionRegistry);
+        return new StreamingInputCallRequest(input, extensionRegistry);
       }
     };
 
@@ -5650,6 +5668,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -6064,7 +6085,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new StreamingInputCallResponse(input, extensionRegistry);
+        return new StreamingInputCallResponse(input, extensionRegistry);
       }
     };
 
@@ -6171,6 +6192,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -6927,7 +6951,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ResponseParameters(input, extensionRegistry);
+        return new ResponseParameters(input, extensionRegistry);
       }
     };
 
@@ -7100,6 +7124,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -8476,7 +8503,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new StreamingOutputCallRequest(input, extensionRegistry);
+        return new StreamingOutputCallRequest(input, extensionRegistry);
       }
     };
 
@@ -8553,6 +8580,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -9123,7 +9153,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new StreamingOutputCallResponse(input, extensionRegistry);
+        return new StreamingOutputCallResponse(input, extensionRegistry);
       }
     };
 
@@ -9182,6 +9212,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -9581,7 +9614,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ReconnectParams(input, extensionRegistry);
+        return new ReconnectParams(input, extensionRegistry);
       }
     };
 
@@ -9655,6 +9688,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -10219,7 +10255,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ReconnectInfo(input, extensionRegistry);
+        return new ReconnectInfo(input, extensionRegistry);
       }
     };
 
@@ -10316,7 +10352,7 @@
       "\rresponse_size\030\002 \001(\005\022&\n\007payload\030\003 \001(\0132\025." +
       "grpc.testing.Payload\022\025\n\rfill_username\030\004 " +
       "\001(\010\022\030\n\020fill_oauth_scope\030\005 \001(\010\0224\n\023respons" +
-      "e_compressed\030\006 \001(\0132\027.grpc.testing.BoolVa",
+      "e_compressed\030\006 \001(\0132\027.grpc.testing.BoolVa" +
       "lue\0221\n\017response_status\030\007 \001(\0132\030.grpc.test" +
       "ing.EchoStatus\0222\n\021expect_compressed\030\010 \001(" +
       "\0132\027.grpc.testing.BoolValue\"_\n\016SimpleResp" +
@@ -10326,7 +10362,7 @@
       "oad\030\001 \001(\0132\025.grpc.testing.Payload\0222\n\021expe" +
       "ct_compressed\030\002 \001(\0132\027.grpc.testing.BoolV" +
       "alue\"=\n\032StreamingInputCallResponse\022\037\n\027ag" +
-      "gregated_payload_size\030\001 \001(\005\"d\n\022ResponseP",
+      "gregated_payload_size\030\001 \001(\005\"d\n\022ResponseP" +
       "arameters\022\014\n\004size\030\001 \001(\005\022\023\n\013interval_us\030\002" +
       " \001(\005\022+\n\ncompressed\030\003 \001(\0132\027.grpc.testing." +
       "BoolValue\"\350\001\n\032StreamingOutputCallRequest" +
@@ -10336,7 +10372,7 @@
       "load\030\003 \001(\0132\025.grpc.testing.Payload\0221\n\017res" +
       "ponse_status\030\007 \001(\0132\030.grpc.testing.EchoSt" +
       "atus\"E\n\033StreamingOutputCallResponse\022&\n\007p" +
-      "ayload\030\001 \001(\0132\025.grpc.testing.Payload\"3\n\017R",
+      "ayload\030\001 \001(\0132\025.grpc.testing.Payload\"3\n\017R" +
       "econnectParams\022 \n\030max_reconnect_backoff_" +
       "ms\030\001 \001(\005\"3\n\rReconnectInfo\022\016\n\006passed\030\001 \001(" +
       "\010\022\022\n\nbackoff_ms\030\002 \003(\005*\037\n\013PayloadType\022\020\n\014" +
diff --git a/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Payloads.java b/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Payloads.java
index 02e3def..7c7f7ad 100644
--- a/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Payloads.java
+++ b/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Payloads.java
@@ -55,6 +55,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -506,7 +509,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ByteBufferParams(input, extensionRegistry);
+        return new ByteBufferParams(input, extensionRegistry);
       }
     };
 
@@ -566,6 +569,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -1017,7 +1023,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new SimpleProtoParams(input, extensionRegistry);
+        return new SimpleProtoParams(input, extensionRegistry);
       }
     };
 
@@ -1070,6 +1076,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
       try {
@@ -1411,7 +1420,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ComplexProtoParams(input, extensionRegistry);
+        return new ComplexProtoParams(input, extensionRegistry);
       }
     };
 
@@ -1500,6 +1509,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -2517,7 +2529,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new PayloadConfig(input, extensionRegistry);
+        return new PayloadConfig(input, extensionRegistry);
       }
     };
 
@@ -2574,7 +2586,7 @@
       "sH\000\0228\n\rsimple_params\030\002 \001(\0132\037.grpc.testin" +
       "g.SimpleProtoParamsH\000\022:\n\016complex_params\030" +
       "\003 \001(\0132 .grpc.testing.ComplexProtoParamsH" +
-      "\000B\t\n\007payloadB$\n\030io.grpc.benchmarks.proto",
+      "\000B\t\n\007payloadB$\n\030io.grpc.benchmarks.proto" +
       "B\010Payloadsb\006proto3"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
diff --git a/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Services.java b/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Services.java
index 36bf486..0e2e15d 100644
--- a/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Services.java
+++ b/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Services.java
@@ -32,7 +32,7 @@
       "nse(\0010\001\022R\n\023StreamingFromClient\022\033.grpc.te" +
       "sting.SimpleRequest\032\034.grpc.testing.Simpl" +
       "eResponse(\001\022R\n\023StreamingFromServer\022\033.grp" +
-      "c.testing.SimpleRequest\032\034.grpc.testing.S",
+      "c.testing.SimpleRequest\032\034.grpc.testing.S" +
       "impleResponse0\001\022R\n\021StreamingBothWays\022\033.g" +
       "rpc.testing.SimpleRequest\032\034.grpc.testing" +
       ".SimpleResponse(\0010\0012\227\002\n\rWorkerService\022E\n" +
@@ -42,7 +42,7 @@
       "ng.ClientStatus(\0010\001\022B\n\tCoreCount\022\031.grpc." +
       "testing.CoreRequest\032\032.grpc.testing.CoreR" +
       "esponse\0224\n\nQuitWorker\022\022.grpc.testing.Voi" +
-      "d\032\022.grpc.testing.Void2^\n\030ReportQpsScenar",
+      "d\032\022.grpc.testing.Void2^\n\030ReportQpsScenar" +
       "ioService\022B\n\016ReportScenario\022\034.grpc.testi" +
       "ng.ScenarioResult\032\022.grpc.testing.VoidB$\n" +
       "\030io.grpc.benchmarks.protoB\010Servicesb\006pro" +
diff --git a/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Stats.java b/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Stats.java
index 6e87193..8337a33 100644
--- a/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Stats.java
+++ b/benchmarks/src/generated/main/java/io/grpc/benchmarks/proto/Stats.java
@@ -104,6 +104,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -895,7 +898,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ServerStats(input, extensionRegistry);
+        return new ServerStats(input, extensionRegistry);
       }
     };
 
@@ -967,6 +970,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -1460,7 +1466,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new HistogramParams(input, extensionRegistry);
+        return new HistogramParams(input, extensionRegistry);
       }
     };
 
@@ -1556,6 +1562,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -2360,7 +2369,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new HistogramData(input, extensionRegistry);
+        return new HistogramData(input, extensionRegistry);
       }
     };
 
@@ -2420,6 +2429,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -2872,7 +2884,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new RequestResultCount(input, extensionRegistry);
+        return new RequestResultCount(input, extensionRegistry);
       }
     };
 
@@ -3022,6 +3034,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -4297,7 +4312,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ClientStats(input, extensionRegistry);
+        return new ClientStats(input, extensionRegistry);
       }
     };
 
@@ -4359,7 +4374,7 @@
       "HistogramData\022\016\n\006bucket\030\001 \003(\r\022\020\n\010min_see" +
       "n\030\002 \001(\001\022\020\n\010max_seen\030\003 \001(\001\022\013\n\003sum\030\004 \001(\001\022\026" +
       "\n\016sum_of_squares\030\005 \001(\001\022\r\n\005count\030\006 \001(\001\"8\n" +
-      "\022RequestResultCount\022\023\n\013status_code\030\001 \001(\005",
+      "\022RequestResultCount\022\023\n\013status_code\030\001 \001(\005" +
       "\022\r\n\005count\030\002 \001(\003\"\315\001\n\013ClientStats\022.\n\tlaten" +
       "cies\030\001 \001(\0132\033.grpc.testing.HistogramData\022" +
       "\024\n\014time_elapsed\030\002 \001(\001\022\021\n\ttime_user\030\003 \001(\001" +
diff --git a/build.gradle b/build.gradle
index 9e8ac1e..dc2e3a2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -98,7 +98,7 @@
 
         nettyVersion = '4.1.17.Final'
         guavaVersion = '19.0'
-        protobufVersion = '3.4.0'
+        protobufVersion = '3.5.0'
         protocVersion = protobufVersion
         protobufNanoVersion = '3.0.0-alpha-5'
 
diff --git a/buildscripts/kokoro/unix.sh b/buildscripts/kokoro/unix.sh
index 74d90ee..0ab9945 100755
--- a/buildscripts/kokoro/unix.sh
+++ b/buildscripts/kokoro/unix.sh
@@ -7,7 +7,7 @@
 set -exu -o pipefail
 
 export GRADLE_OPTS=-Xmx512m
-export PROTOBUF_VERSION=3.4.0
+export PROTOBUF_VERSION=3.5.0
 export LDFLAGS=-L/tmp/protobuf/lib
 export CXXFLAGS=-I/tmp/protobuf/include
 export LD_LIBRARY_PATH=/tmp/protobuf/lib
diff --git a/buildscripts/make_dependencies.bat b/buildscripts/make_dependencies.bat
index e4447cc..873fa2e 100644
--- a/buildscripts/make_dependencies.bat
+++ b/buildscripts/make_dependencies.bat
@@ -4,7 +4,7 @@
 REM Prerequisite:
 REM   7za.exe in current directory or PATH
 
-set PROTOBUF_VER=3.4.0
+set PROTOBUF_VER=3.5.0
 set CMAKE_NAME=cmake-3.3.2-win32-x86
 
 if not exist "protobuf-%PROTOBUF_VER%\cmake\build\Release\" (
diff --git a/compiler/Dockerfile b/compiler/Dockerfile
index c873b75..370006f 100644
--- a/compiler/Dockerfile
+++ b/compiler/Dockerfile
@@ -2,7 +2,7 @@
 
 RUN scl enable devtoolset-1.1 'bash -c "cd /protobuf && \
     git fetch && \
-    git checkout v3.4.0 && \
+    git checkout v3.5.0 && \
     ./autogen.sh && \
     CXXFLAGS=-m32 ./configure --disable-shared --prefix=/protobuf-32 && \
     make clean && make -j$(nproc) && make -j$(nproc) install"'
diff --git a/examples/android/helloworld/app/build.gradle b/examples/android/helloworld/app/build.gradle
index b79af42..6034160 100644
--- a/examples/android/helloworld/app/build.gradle
+++ b/examples/android/helloworld/app/build.gradle
@@ -28,7 +28,7 @@
 
 protobuf {
     protoc {
-        artifact = 'com.google.protobuf:protoc:3.4.0'
+        artifact = 'com.google.protobuf:protoc:3.5.0'
     }
     plugins {
         javalite {
diff --git a/examples/android/routeguide/app/build.gradle b/examples/android/routeguide/app/build.gradle
index 7f183a5..08f49c7 100644
--- a/examples/android/routeguide/app/build.gradle
+++ b/examples/android/routeguide/app/build.gradle
@@ -25,7 +25,7 @@
 
 protobuf {
     protoc {
-        artifact = 'com.google.protobuf:protoc:3.4.0'
+        artifact = 'com.google.protobuf:protoc:3.5.0'
     }
     plugins {
         javalite {
diff --git a/examples/build.gradle b/examples/build.gradle
index edab878..b39949b 100644
--- a/examples/build.gradle
+++ b/examples/build.gradle
@@ -37,7 +37,7 @@
 
 protobuf {
   protoc {
-    artifact = 'com.google.protobuf:protoc:3.4.0'
+    artifact = 'com.google.protobuf:protoc:3.5.0'
   }
   plugins {
     grpc {
diff --git a/examples/pom.xml b/examples/pom.xml
index e63764a..e671bbc 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -67,7 +67,7 @@
         <artifactId>protobuf-maven-plugin</artifactId>
         <version>0.5.0</version>
         <configuration>
-          <protocArtifact>com.google.protobuf:protoc:3.4.0:exe:${os.detected.classifier}</protocArtifact>
+          <protocArtifact>com.google.protobuf:protoc:3.5.0:exe:${os.detected.classifier}</protocArtifact>
           <pluginId>grpc-java</pluginId>
           <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact>
         </configuration>
diff --git a/grpclb/src/generated/main/java/io/grpc/grpclb/ClientStats.java b/grpclb/src/generated/main/java/io/grpc/grpclb/ClientStats.java
index 82a878e..c5b6f8d 100644
--- a/grpclb/src/generated/main/java/io/grpc/grpclb/ClientStats.java
+++ b/grpclb/src/generated/main/java/io/grpc/grpclb/ClientStats.java
@@ -38,6 +38,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -1348,7 +1351,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ClientStats(input, extensionRegistry);
+      return new ClientStats(input, extensionRegistry);
     }
   };
 
diff --git a/grpclb/src/generated/main/java/io/grpc/grpclb/ClientStatsPerToken.java b/grpclb/src/generated/main/java/io/grpc/grpclb/ClientStatsPerToken.java
index a9f5871..c89c058 100644
--- a/grpclb/src/generated/main/java/io/grpc/grpclb/ClientStatsPerToken.java
+++ b/grpclb/src/generated/main/java/io/grpc/grpclb/ClientStatsPerToken.java
@@ -34,6 +34,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -603,7 +606,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ClientStatsPerToken(input, extensionRegistry);
+      return new ClientStatsPerToken(input, extensionRegistry);
     }
   };
 
diff --git a/grpclb/src/generated/main/java/io/grpc/grpclb/InitialLoadBalanceRequest.java b/grpclb/src/generated/main/java/io/grpc/grpclb/InitialLoadBalanceRequest.java
index 96162e7..f16055d 100644
--- a/grpclb/src/generated/main/java/io/grpc/grpclb/InitialLoadBalanceRequest.java
+++ b/grpclb/src/generated/main/java/io/grpc/grpclb/InitialLoadBalanceRequest.java
@@ -29,6 +29,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -527,7 +530,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new InitialLoadBalanceRequest(input, extensionRegistry);
+      return new InitialLoadBalanceRequest(input, extensionRegistry);
     }
   };
 
diff --git a/grpclb/src/generated/main/java/io/grpc/grpclb/InitialLoadBalanceResponse.java b/grpclb/src/generated/main/java/io/grpc/grpclb/InitialLoadBalanceResponse.java
index f43f63d..79ed897 100644
--- a/grpclb/src/generated/main/java/io/grpc/grpclb/InitialLoadBalanceResponse.java
+++ b/grpclb/src/generated/main/java/io/grpc/grpclb/InitialLoadBalanceResponse.java
@@ -29,6 +29,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -801,7 +804,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new InitialLoadBalanceResponse(input, extensionRegistry);
+      return new InitialLoadBalanceResponse(input, extensionRegistry);
     }
   };
 
diff --git a/grpclb/src/generated/main/java/io/grpc/grpclb/LoadBalanceRequest.java b/grpclb/src/generated/main/java/io/grpc/grpclb/LoadBalanceRequest.java
index 3522a5f..bdf27ef 100644
--- a/grpclb/src/generated/main/java/io/grpc/grpclb/LoadBalanceRequest.java
+++ b/grpclb/src/generated/main/java/io/grpc/grpclb/LoadBalanceRequest.java
@@ -28,6 +28,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -949,7 +952,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new LoadBalanceRequest(input, extensionRegistry);
+      return new LoadBalanceRequest(input, extensionRegistry);
     }
   };
 
diff --git a/grpclb/src/generated/main/java/io/grpc/grpclb/LoadBalanceResponse.java b/grpclb/src/generated/main/java/io/grpc/grpclb/LoadBalanceResponse.java
index a3715a6..aa223bb 100644
--- a/grpclb/src/generated/main/java/io/grpc/grpclb/LoadBalanceResponse.java
+++ b/grpclb/src/generated/main/java/io/grpc/grpclb/LoadBalanceResponse.java
@@ -28,6 +28,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -949,7 +952,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new LoadBalanceResponse(input, extensionRegistry);
+      return new LoadBalanceResponse(input, extensionRegistry);
     }
   };
 
diff --git a/grpclb/src/generated/main/java/io/grpc/grpclb/LoadBalancerProto.java b/grpclb/src/generated/main/java/io/grpc/grpclb/LoadBalancerProto.java
index 25be279..d7eafe1 100644
--- a/grpclb/src/generated/main/java/io/grpc/grpclb/LoadBalancerProto.java
+++ b/grpclb/src/generated/main/java/io/grpc/grpclb/LoadBalancerProto.java
@@ -72,7 +72,7 @@
       "load_balance_request_type\")\n\031InitialLoad" +
       "BalanceRequest\022\014\n\004name\030\001 \001(\t\"D\n\023ClientSt" +
       "atsPerToken\022\032\n\022load_balance_token\030\001 \001(\t\022" +
-      "\021\n\tnum_calls\030\002 \001(\003\"\244\002\n\013ClientStats\022-\n\tti",
+      "\021\n\tnum_calls\030\002 \001(\003\"\244\002\n\013ClientStats\022-\n\tti" +
       "mestamp\030\001 \001(\0132\032.google.protobuf.Timestam" +
       "p\022\031\n\021num_calls_started\030\002 \001(\003\022\032\n\022num_call" +
       "s_finished\030\003 \001(\003\0225\n-num_calls_finished_w" +
@@ -82,7 +82,7 @@
       "1.ClientStatsPerTokenJ\004\010\004\020\005J\004\010\005\020\006\"\246\001\n\023Lo" +
       "adBalanceResponse\022B\n\020initial_response\030\001 " +
       "\001(\0132&.grpc.lb.v1.InitialLoadBalanceRespo" +
-      "nseH\000\022-\n\013server_list\030\002 \001(\0132\026.grpc.lb.v1.",
+      "nseH\000\022-\n\013server_list\030\002 \001(\0132\026.grpc.lb.v1." +
       "ServerListH\000B\034\n\032load_balance_response_ty" +
       "pe\"}\n\032InitialLoadBalanceResponse\022\036\n\026load" +
       "_balancer_delegate\030\001 \001(\t\022?\n\034client_stats" +
@@ -92,7 +92,7 @@
       "ip_address\030\001 \001(\014\022\014\n\004port\030\002 \001(\005\022\032\n\022load_b" +
       "alance_token\030\003 \001(\t\022\014\n\004drop\030\004 \001(\010J\004\010\005\020\0062b" +
       "\n\014LoadBalancer\022R\n\013BalanceLoad\022\036.grpc.lb." +
-      "v1.LoadBalanceRequest\032\037.grpc.lb.v1.LoadB",
+      "v1.LoadBalanceRequest\032\037.grpc.lb.v1.LoadB" +
       "alanceResponse(\0010\001B%\n\016io.grpc.grpclbB\021Lo" +
       "adBalancerProtoP\001b\006proto3"
     };
diff --git a/grpclb/src/generated/main/java/io/grpc/grpclb/Server.java b/grpclb/src/generated/main/java/io/grpc/grpclb/Server.java
index e5501c1..cf3eeea 100644
--- a/grpclb/src/generated/main/java/io/grpc/grpclb/Server.java
+++ b/grpclb/src/generated/main/java/io/grpc/grpclb/Server.java
@@ -37,6 +37,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -796,7 +799,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new Server(input, extensionRegistry);
+      return new Server(input, extensionRegistry);
     }
   };
 
diff --git a/grpclb/src/generated/main/java/io/grpc/grpclb/ServerList.java b/grpclb/src/generated/main/java/io/grpc/grpclb/ServerList.java
index 29fe3c6..33fc04f 100644
--- a/grpclb/src/generated/main/java/io/grpc/grpclb/ServerList.java
+++ b/grpclb/src/generated/main/java/io/grpc/grpclb/ServerList.java
@@ -29,6 +29,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -871,7 +874,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ServerList(input, extensionRegistry);
+      return new ServerList(input, extensionRegistry);
     }
   };
 
diff --git a/interop-testing/src/generated/main/java/com/google/protobuf/EmptyProtos.java b/interop-testing/src/generated/main/java/com/google/protobuf/EmptyProtos.java
index 23d7e6a..fb4bb99 100644
--- a/interop-testing/src/generated/main/java/com/google/protobuf/EmptyProtos.java
+++ b/interop-testing/src/generated/main/java/com/google/protobuf/EmptyProtos.java
@@ -52,6 +52,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
       try {
@@ -397,7 +400,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new Empty(input, extensionRegistry);
+        return new Empty(input, extensionRegistry);
       }
     };
 
diff --git a/interop-testing/src/generated/main/java/io/grpc/testing/integration/Messages.java b/interop-testing/src/generated/main/java/io/grpc/testing/integration/Messages.java
index 65587b6..f75290a 100644
--- a/interop-testing/src/generated/main/java/io/grpc/testing/integration/Messages.java
+++ b/interop-testing/src/generated/main/java/io/grpc/testing/integration/Messages.java
@@ -213,6 +213,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -747,7 +750,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new Payload(input, extensionRegistry);
+        return new Payload(input, extensionRegistry);
       }
     };
 
@@ -817,6 +820,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -1342,7 +1348,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new EchoStatus(input, extensionRegistry);
+        return new EchoStatus(input, extensionRegistry);
       }
     };
 
@@ -1555,6 +1561,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -3193,7 +3202,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new SimpleRequest(input, extensionRegistry);
+        return new SimpleRequest(input, extensionRegistry);
       }
     };
 
@@ -3310,6 +3319,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -4195,7 +4207,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new SimpleResponse(input, extensionRegistry);
+        return new SimpleResponse(input, extensionRegistry);
       }
     };
 
@@ -4254,6 +4266,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -4717,7 +4732,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new SimpleContext(input, extensionRegistry);
+        return new SimpleContext(input, extensionRegistry);
       }
     };
 
@@ -4828,6 +4843,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -5663,7 +5681,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new StreamingInputCallRequest(input, extensionRegistry);
+        return new StreamingInputCallRequest(input, extensionRegistry);
       }
     };
 
@@ -5725,6 +5743,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -6139,7 +6160,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new StreamingInputCallResponse(input, extensionRegistry);
+        return new StreamingInputCallResponse(input, extensionRegistry);
       }
     };
 
@@ -6246,6 +6267,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -7002,7 +7026,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ResponseParameters(input, extensionRegistry);
+        return new ResponseParameters(input, extensionRegistry);
       }
     };
 
@@ -7175,6 +7199,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -8551,7 +8578,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new StreamingOutputCallRequest(input, extensionRegistry);
+        return new StreamingOutputCallRequest(input, extensionRegistry);
       }
     };
 
@@ -8628,6 +8655,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -9198,7 +9228,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new StreamingOutputCallResponse(input, extensionRegistry);
+        return new StreamingOutputCallResponse(input, extensionRegistry);
       }
     };
 
@@ -9257,6 +9287,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -9656,7 +9689,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ReconnectParams(input, extensionRegistry);
+        return new ReconnectParams(input, extensionRegistry);
       }
     };
 
@@ -9730,6 +9763,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -10294,7 +10330,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ReconnectInfo(input, extensionRegistry);
+        return new ReconnectInfo(input, extensionRegistry);
       }
     };
 
@@ -10391,7 +10427,7 @@
       "(\0162\031.grpc.testing.PayloadType\022\025\n\rrespons" +
       "e_size\030\002 \001(\005\022&\n\007payload\030\003 \001(\0132\025.grpc.tes" +
       "ting.Payload\022\025\n\rfill_username\030\004 \001(\010\022\030\n\020f" +
-      "ill_oauth_scope\030\005 \001(\010\0227\n\023response_compre",
+      "ill_oauth_scope\030\005 \001(\010\0227\n\023response_compre" +
       "ssed\030\006 \001(\0132\032.google.protobuf.BoolValue\0221" +
       "\n\017response_status\030\007 \001(\0132\030.grpc.testing.E" +
       "choStatus\0225\n\021expect_compressed\030\010 \001(\0132\032.g" +
@@ -10401,7 +10437,7 @@
       "\t\"\036\n\rSimpleContext\022\r\n\005value\030\001 \001(\t\"z\n\031Str" +
       "eamingInputCallRequest\022&\n\007payload\030\001 \001(\0132" +
       "\025.grpc.testing.Payload\0225\n\021expect_compres" +
-      "sed\030\002 \001(\0132\032.google.protobuf.BoolValue\"=\n",
+      "sed\030\002 \001(\0132\032.google.protobuf.BoolValue\"=\n" +
       "\032StreamingInputCallResponse\022\037\n\027aggregate" +
       "d_payload_size\030\001 \001(\005\"g\n\022ResponseParamete" +
       "rs\022\014\n\004size\030\001 \001(\005\022\023\n\013interval_us\030\002 \001(\005\022.\n" +
@@ -10411,7 +10447,7 @@
       "adType\022=\n\023response_parameters\030\002 \003(\0132 .gr" +
       "pc.testing.ResponseParameters\022&\n\007payload" +
       "\030\003 \001(\0132\025.grpc.testing.Payload\0221\n\017respons" +
-      "e_status\030\007 \001(\0132\030.grpc.testing.EchoStatus",
+      "e_status\030\007 \001(\0132\030.grpc.testing.EchoStatus" +
       "\"E\n\033StreamingOutputCallResponse\022&\n\007paylo" +
       "ad\030\001 \001(\0132\025.grpc.testing.Payload\"3\n\017Recon" +
       "nectParams\022 \n\030max_reconnect_backoff_ms\030\001" +
diff --git a/interop-testing/src/generated/main/java/io/grpc/testing/integration/Metrics.java b/interop-testing/src/generated/main/java/io/grpc/testing/integration/Metrics.java
index 2a9f84e..f9b5e49 100644
--- a/interop-testing/src/generated/main/java/io/grpc/testing/integration/Metrics.java
+++ b/interop-testing/src/generated/main/java/io/grpc/testing/integration/Metrics.java
@@ -80,6 +80,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -917,7 +920,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new GaugeResponse(input, extensionRegistry);
+        return new GaugeResponse(input, extensionRegistry);
       }
     };
 
@@ -980,6 +983,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -1447,7 +1453,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new GaugeRequest(input, extensionRegistry);
+        return new GaugeRequest(input, extensionRegistry);
       }
     };
 
@@ -1495,6 +1501,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
       try {
@@ -1831,7 +1840,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new EmptyMessage(input, extensionRegistry);
+        return new EmptyMessage(input, extensionRegistry);
       }
     };
 
@@ -1883,7 +1892,7 @@
       "llGauges\022\032.grpc.testing.EmptyMessage\032\033.g" +
       "rpc.testing.GaugeResponse0\001\022C\n\010GetGauge\022" +
       "\032.grpc.testing.GaugeRequest\032\033.grpc.testi" +
-      "ng.GaugeResponseB\035\n\033io.grpc.testing.inte",
+      "ng.GaugeResponseB\035\n\033io.grpc.testing.inte" +
       "grationb\006proto3"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
diff --git a/interop-testing/src/generated/main/java/io/grpc/testing/integration/Test.java b/interop-testing/src/generated/main/java/io/grpc/testing/integration/Test.java
index 44903d2..ba87a36 100644
--- a/interop-testing/src/generated/main/java/io/grpc/testing/integration/Test.java
+++ b/interop-testing/src/generated/main/java/io/grpc/testing/integration/Test.java
@@ -32,7 +32,7 @@
       "impleRequest\032\034.grpc.testing.SimpleRespon" +
       "se\022O\n\022CacheableUnaryCall\022\033.grpc.testing." +
       "SimpleRequest\032\034.grpc.testing.SimpleRespo" +
-      "nse\022l\n\023StreamingOutputCall\022(.grpc.testin",
+      "nse\022l\n\023StreamingOutputCall\022(.grpc.testin" +
       "g.StreamingOutputCallRequest\032).grpc.test" +
       "ing.StreamingOutputCallResponse0\001\022i\n\022Str" +
       "eamingInputCall\022\'.grpc.testing.Streaming" +
@@ -42,7 +42,7 @@
       "\032).grpc.testing.StreamingOutputCallRespo" +
       "nse(\0010\001\022i\n\016HalfDuplexCall\022(.grpc.testing" +
       ".StreamingOutputCallRequest\032).grpc.testi" +
-      "ng.StreamingOutputCallResponse(\0010\001\022=\n\021Un",
+      "ng.StreamingOutputCallResponse(\0010\001\022=\n\021Un" +
       "implementedCall\022\023.grpc.testing.Empty\032\023.g" +
       "rpc.testing.Empty2U\n\024UnimplementedServic" +
       "e\022=\n\021UnimplementedCall\022\023.grpc.testing.Em" +
diff --git a/repositories.bzl b/repositories.bzl
index 39d7017..c179855 100644
--- a/repositories.bzl
+++ b/repositories.bzl
@@ -139,8 +139,8 @@
   native.http_archive(
       name = "com_google_protobuf",
       sha256 = "542703acadc3f690d998f4641e1b988f15ba57ebca05fdfb1cd9095bec007948",
-      strip_prefix = "protobuf-3.4.0",
-      urls = ["https://github.com/google/protobuf/archive/v3.4.0.zip"],
+      strip_prefix = "protobuf-3.5.0",
+      urls = ["https://github.com/google/protobuf/archive/v3.5.0.zip"],
   )
 
 def com_google_protobuf_java():
@@ -149,8 +149,8 @@
   native.http_archive(
       name = "com_google_protobuf_java",
       sha256 = "542703acadc3f690d998f4641e1b988f15ba57ebca05fdfb1cd9095bec007948",
-      strip_prefix = "protobuf-3.4.0",
-      urls = ["https://github.com/google/protobuf/archive/v3.4.0.zip"],
+      strip_prefix = "protobuf-3.5.0",
+      urls = ["https://github.com/google/protobuf/archive/v3.5.0.zip"],
   )
 
 def com_google_protobuf_nano_protobuf_javanano():
diff --git a/services/src/generated/main/java/com/google/instrumentation/stats/proto/CensusProto.java b/services/src/generated/main/java/com/google/instrumentation/stats/proto/CensusProto.java
index 533aceb..89a110c 100644
--- a/services/src/generated/main/java/com/google/instrumentation/stats/proto/CensusProto.java
+++ b/services/src/generated/main/java/com/google/instrumentation/stats/proto/CensusProto.java
@@ -69,6 +69,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -577,7 +580,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new Duration(input, extensionRegistry);
+        return new Duration(input, extensionRegistry);
       }
     };
 
@@ -650,6 +653,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -1154,7 +1160,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new Timestamp(input, extensionRegistry);
+        return new Timestamp(input, extensionRegistry);
       }
     };
 
@@ -1269,6 +1275,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -1646,6 +1655,9 @@
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
         this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
         int mutable_bitField0_ = 0;
         com.google.protobuf.UnknownFieldSet.Builder unknownFields =
             com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -2531,7 +2543,7 @@
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-            return new MeasurementUnit(input, extensionRegistry);
+          return new MeasurementUnit(input, extensionRegistry);
         }
       };
 
@@ -3361,7 +3373,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new MeasurementDescriptor(input, extensionRegistry);
+        return new MeasurementDescriptor(input, extensionRegistry);
       }
     };
 
@@ -3587,6 +3599,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -3746,6 +3761,9 @@
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
         this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
         int mutable_bitField0_ = 0;
         com.google.protobuf.UnknownFieldSet.Builder unknownFields =
             com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -4239,7 +4257,7 @@
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-            return new Range(input, extensionRegistry);
+          return new Range(input, extensionRegistry);
         }
       };
 
@@ -5736,7 +5754,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new DistributionAggregation(input, extensionRegistry);
+        return new DistributionAggregation(input, extensionRegistry);
       }
     };
 
@@ -5852,6 +5870,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -6526,7 +6547,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new DistributionAggregationDescriptor(input, extensionRegistry);
+        return new DistributionAggregationDescriptor(input, extensionRegistry);
       }
     };
 
@@ -6676,6 +6697,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -6820,6 +6844,9 @@
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
         this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
         int mutable_bitField0_ = 0;
         com.google.protobuf.UnknownFieldSet.Builder unknownFields =
             com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -7542,7 +7569,7 @@
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-            return new Interval(input, extensionRegistry);
+          return new Interval(input, extensionRegistry);
         }
       };
 
@@ -8732,7 +8759,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new IntervalAggregation(input, extensionRegistry);
+        return new IntervalAggregation(input, extensionRegistry);
       }
     };
 
@@ -8851,6 +8878,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -9752,7 +9782,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new IntervalAggregationDescriptor(input, extensionRegistry);
+        return new IntervalAggregationDescriptor(input, extensionRegistry);
       }
     };
 
@@ -9826,6 +9856,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -10419,7 +10452,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new Tag(input, extensionRegistry);
+        return new Tag(input, extensionRegistry);
       }
     };
 
@@ -10598,6 +10631,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -12118,7 +12154,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new ViewDescriptor(input, extensionRegistry);
+        return new ViewDescriptor(input, extensionRegistry);
       }
     };
 
@@ -12259,6 +12295,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -13473,7 +13512,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new DistributionView(input, extensionRegistry);
+        return new DistributionView(input, extensionRegistry);
       }
     };
 
@@ -13576,6 +13615,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -14377,7 +14419,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new IntervalView(input, extensionRegistry);
+        return new IntervalView(input, extensionRegistry);
       }
     };
 
@@ -14476,6 +14518,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -15447,7 +15492,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new View(input, extensionRegistry);
+        return new View(input, extensionRegistry);
       }
     };
 
@@ -15559,7 +15604,7 @@
       "umentation.MeasurementDescriptor.Measure" +
       "mentUnit\032\276\001\n\017MeasurementUnit\022\017\n\007power10\030" +
       "\001 \001(\005\022K\n\nnumerators\030\002 \003(\01627.google.instr" +
-      "umentation.MeasurementDescriptor.BasicUn",
+      "umentation.MeasurementDescriptor.BasicUn" +
       "it\022M\n\014denominators\030\003 \003(\01627.google.instru" +
       "mentation.MeasurementDescriptor.BasicUni" +
       "t\"`\n\tBasicUnit\022\013\n\007UNKNOWN\020\000\022\n\n\006SCALAR\020\001\022" +
@@ -15569,7 +15614,7 @@
       "sum\030\003 \001(\001\022D\n\005range\030\004 \001(\01325.google.instru" +
       "mentation.DistributionAggregation.Range\022" +
       "\025\n\rbucket_counts\030\005 \003(\003\022)\n\004tags\030\006 \003(\0132\033.g" +
-      "oogle.instrumentation.Tag\032!\n\005Range\022\013\n\003mi",
+      "oogle.instrumentation.Tag\032!\n\005Range\022\013\n\003mi" +
       "n\030\001 \001(\001\022\013\n\003max\030\002 \001(\001\":\n!DistributionAggr" +
       "egationDescriptor\022\025\n\rbucket_bounds\030\001 \003(\001" +
       "\"\352\001\n\023IntervalAggregation\022G\n\tintervals\030\001 " +
@@ -15579,7 +15624,7 @@
       "rval_size\030\001 \001(\0132 .google.instrumentation" +
       ".Duration\022\r\n\005count\030\002 \001(\001\022\013\n\003sum\030\003 \001(\001\"r\n" +
       "\035IntervalAggregationDescriptor\022\027\n\017n_sub_" +
-      "intervals\030\001 \001(\005\0228\n\016interval_sizes\030\002 \003(\0132",
+      "intervals\030\001 \001(\005\0228\n\016interval_sizes\030\002 \003(\0132" +
       " .google.instrumentation.Duration\"!\n\003Tag" +
       "\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"\257\002\n\016ViewDes" +
       "criptor\022\014\n\004name\030\001 \001(\t\022\023\n\013description\030\002 \001" +
@@ -15589,7 +15634,7 @@
       "ptorH\000\022]\n\030distribution_aggregation\030\005 \001(\013" +
       "29.google.instrumentation.DistributionAg" +
       "gregationDescriptorH\000\022\020\n\010tag_keys\030\006 \003(\tB" +
-      "\r\n\013aggregation\"\273\001\n\020DistributionView\022E\n\014a",
+      "\r\n\013aggregation\"\273\001\n\020DistributionView\022E\n\014a" +
       "ggregations\030\001 \003(\0132/.google.instrumentati" +
       "on.DistributionAggregation\0220\n\005start\030\002 \001(" +
       "\0132!.google.instrumentation.Timestamp\022.\n\003" +
@@ -15599,7 +15644,7 @@
       "egation\"\247\001\n\004View\022\021\n\tview_name\030\001 \001(\t\022E\n\021d" +
       "istribution_view\030\002 \001(\0132(.google.instrume" +
       "ntation.DistributionViewH\000\022=\n\rinterval_v" +
-      "iew\030\003 \001(\0132$.google.instrumentation.Inter",
+      "iew\030\003 \001(\0132$.google.instrumentation.Inter" +
       "valViewH\000B\006\n\004viewB5\n&com.google.instrume" +
       "ntation.stats.protoB\013CensusProtob\006proto3"
     };
diff --git a/services/src/generated/main/java/io/grpc/health/v1/HealthCheckRequest.java b/services/src/generated/main/java/io/grpc/health/v1/HealthCheckRequest.java
index 3117f5b..4ae6372 100644
--- a/services/src/generated/main/java/io/grpc/health/v1/HealthCheckRequest.java
+++ b/services/src/generated/main/java/io/grpc/health/v1/HealthCheckRequest.java
@@ -29,6 +29,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -492,7 +495,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new HealthCheckRequest(input, extensionRegistry);
+      return new HealthCheckRequest(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/main/java/io/grpc/health/v1/HealthCheckResponse.java b/services/src/generated/main/java/io/grpc/health/v1/HealthCheckResponse.java
index ba65088..1d69211 100644
--- a/services/src/generated/main/java/io/grpc/health/v1/HealthCheckResponse.java
+++ b/services/src/generated/main/java/io/grpc/health/v1/HealthCheckResponse.java
@@ -29,6 +29,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -555,7 +558,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new HealthCheckResponse(input, extensionRegistry);
+      return new HealthCheckResponse(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/CanonicalRpcStats.java b/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/CanonicalRpcStats.java
index b494ac2..7ef3711 100644
--- a/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/CanonicalRpcStats.java
+++ b/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/CanonicalRpcStats.java
@@ -32,6 +32,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -3498,7 +3501,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new CanonicalRpcStats(input, extensionRegistry);
+      return new CanonicalRpcStats(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/CustomMonitoringData.java b/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/CustomMonitoringData.java
index 93bd286..4849a74 100644
--- a/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/CustomMonitoringData.java
+++ b/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/CustomMonitoringData.java
@@ -32,6 +32,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -602,7 +605,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new CustomMonitoringData(input, extensionRegistry);
+      return new CustomMonitoringData(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/MonitoringDataGroup.java b/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/MonitoringDataGroup.java
index 5a73a29..e8cccfb 100644
--- a/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/MonitoringDataGroup.java
+++ b/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/MonitoringDataGroup.java
@@ -29,6 +29,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -520,7 +523,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new MonitoringDataGroup(input, extensionRegistry);
+      return new MonitoringDataGroup(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/MonitoringProto.java b/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/MonitoringProto.java
index e0ffd03..26e34c7 100644
--- a/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/MonitoringProto.java
+++ b/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/MonitoringProto.java
@@ -67,7 +67,7 @@
       "on.v1alpha.StatsResponse\022N\n\031rpc_client_c" +
       "ompleted_rpcs\030\002 \001(\0132+.grpc.instrumentati" +
       "on.v1alpha.StatsResponse\022L\n\027rpc_client_s" +
-      "tarted_rpcs\030\003 \001(\0132+.grpc.instrumentation",
+      "tarted_rpcs\030\003 \001(\0132+.grpc.instrumentation" +
       ".v1alpha.StatsResponse\022L\n\027rpc_client_ela" +
       "psed_time\030\004 \001(\0132+.grpc.instrumentation.v" +
       "1alpha.StatsResponse\022S\n\036rpc_client_serve" +
@@ -77,7 +77,7 @@
       "on.v1alpha.StatsResponse\022N\n\031rpc_client_r" +
       "esponse_bytes\030\007 \001(\0132+.grpc.instrumentati" +
       "on.v1alpha.StatsResponse\022M\n\030rpc_client_r" +
-      "equest_count\030\010 \001(\0132+.grpc.instrumentatio",
+      "equest_count\030\010 \001(\0132+.grpc.instrumentatio" +
       "n.v1alpha.StatsResponse\022N\n\031rpc_client_re" +
       "sponse_count\030\t \001(\0132+.grpc.instrumentatio" +
       "n.v1alpha.StatsResponse\022F\n\021rpc_server_er" +
@@ -87,7 +87,7 @@
       "a.StatsResponse\022S\n\036rpc_server_server_ela" +
       "psed_time\030\014 \001(\0132+.grpc.instrumentation.v" +
       "1alpha.StatsResponse\022M\n\030rpc_server_reque" +
-      "st_bytes\030\r \001(\0132+.grpc.instrumentation.v1",
+      "st_bytes\030\r \001(\0132+.grpc.instrumentation.v1" +
       "alpha.StatsResponse\022N\n\031rpc_server_respon" +
       "se_bytes\030\016 \001(\0132+.grpc.instrumentation.v1" +
       "alpha.StatsResponse\022M\n\030rpc_server_reques" +
@@ -97,7 +97,7 @@
       "lpha.StatsResponse\022L\n\027rpc_server_elapsed" +
       "_time\030\021 \001(\0132+.grpc.instrumentation.v1alp" +
       "ha.StatsResponse\"q\n\014StatsRequest\022\022\n\nview" +
-      "_names\030\001 \003(\t\022\031\n\021measurement_names\030\002 \003(\t\022",
+      "_names\030\001 \003(\t\022\031\n\021measurement_names\030\002 \003(\t\022" +
       "2\n*dont_include_descriptors_in_first_res" +
       "ponse\030\003 \001(\010\"\313\001\n\rStatsResponse\022M\n\026measure" +
       "ment_descriptor\030\001 \001(\0132-.google.instrumen" +
@@ -107,7 +107,7 @@
       "trumentation.View\"\016\n\014TraceRequest\"\017\n\rTra" +
       "ceResponse\"#\n\023MonitoringDataGroup\022\014\n\004nam" +
       "e\030\001 \001(\t\">\n\024CustomMonitoringData\022&\n\010conte" +
-      "nts\030\001 \001(\0132\024.google.protobuf.Any2\265\004\n\nMoni",
+      "nts\030\001 \001(\0132\024.google.protobuf.Any2\265\004\n\nMoni" +
       "toring\022a\n\024GetCanonicalRpcStats\022\026.google." +
       "protobuf.Empty\032/.grpc.instrumentation.v1" +
       "alpha.CanonicalRpcStats\"\000\022e\n\010GetStats\022*." +
@@ -117,7 +117,7 @@
       "ation.v1alpha.StatsRequest\032+.grpc.instru" +
       "mentation.v1alpha.StatsResponse\"\0000\001\022m\n\020G" +
       "etRequestTraces\022*.grpc.instrumentation.v" +
-      "1alpha.TraceRequest\032+.grpc.instrumentati",
+      "1alpha.TraceRequest\032+.grpc.instrumentati" +
       "on.v1alpha.TraceResponse\"\000\022\202\001\n\027GetCustom" +
       "MonitoringData\0221.grpc.instrumentation.v1" +
       "alpha.MonitoringDataGroup\0322.grpc.instrum" +
diff --git a/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/StatsRequest.java b/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/StatsRequest.java
index 2a045e4..cd0ed58 100644
--- a/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/StatsRequest.java
+++ b/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/StatsRequest.java
@@ -36,6 +36,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -1063,7 +1066,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new StatsRequest(input, extensionRegistry);
+      return new StatsRequest(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/StatsResponse.java b/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/StatsResponse.java
index f3e9f24..62a91a3 100644
--- a/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/StatsResponse.java
+++ b/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/StatsResponse.java
@@ -33,6 +33,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -1074,7 +1077,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new StatsResponse(input, extensionRegistry);
+      return new StatsResponse(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/TraceRequest.java b/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/TraceRequest.java
index 4b27ce8..8d72f48 100644
--- a/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/TraceRequest.java
+++ b/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/TraceRequest.java
@@ -32,6 +32,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
     try {
@@ -372,7 +375,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new TraceRequest(input, extensionRegistry);
+      return new TraceRequest(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/TraceResponse.java b/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/TraceResponse.java
index 69488a1..1b51cdc 100644
--- a/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/TraceResponse.java
+++ b/services/src/generated/main/java/io/grpc/instrumentation/v1alpha/TraceResponse.java
@@ -32,6 +32,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
     try {
@@ -372,7 +375,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new TraceResponse(input, extensionRegistry);
+      return new TraceResponse(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/main/java/io/grpc/reflection/v1alpha/ErrorResponse.java b/services/src/generated/main/java/io/grpc/reflection/v1alpha/ErrorResponse.java
index c95cea7..5bfe392 100644
--- a/services/src/generated/main/java/io/grpc/reflection/v1alpha/ErrorResponse.java
+++ b/services/src/generated/main/java/io/grpc/reflection/v1alpha/ErrorResponse.java
@@ -34,6 +34,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -574,7 +577,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ErrorResponse(input, extensionRegistry);
+      return new ErrorResponse(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/main/java/io/grpc/reflection/v1alpha/ExtensionNumberResponse.java b/services/src/generated/main/java/io/grpc/reflection/v1alpha/ExtensionNumberResponse.java
index bcf1f63..8d982e5 100644
--- a/services/src/generated/main/java/io/grpc/reflection/v1alpha/ExtensionNumberResponse.java
+++ b/services/src/generated/main/java/io/grpc/reflection/v1alpha/ExtensionNumberResponse.java
@@ -35,6 +35,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -701,7 +704,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ExtensionNumberResponse(input, extensionRegistry);
+      return new ExtensionNumberResponse(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/main/java/io/grpc/reflection/v1alpha/ExtensionRequest.java b/services/src/generated/main/java/io/grpc/reflection/v1alpha/ExtensionRequest.java
index 55b63f3..4f49b8e 100644
--- a/services/src/generated/main/java/io/grpc/reflection/v1alpha/ExtensionRequest.java
+++ b/services/src/generated/main/java/io/grpc/reflection/v1alpha/ExtensionRequest.java
@@ -35,6 +35,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -588,7 +591,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ExtensionRequest(input, extensionRegistry);
+      return new ExtensionRequest(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/main/java/io/grpc/reflection/v1alpha/FileDescriptorResponse.java b/services/src/generated/main/java/io/grpc/reflection/v1alpha/FileDescriptorResponse.java
index 435722d..ea66a2b 100644
--- a/services/src/generated/main/java/io/grpc/reflection/v1alpha/FileDescriptorResponse.java
+++ b/services/src/generated/main/java/io/grpc/reflection/v1alpha/FileDescriptorResponse.java
@@ -35,6 +35,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -580,7 +583,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new FileDescriptorResponse(input, extensionRegistry);
+      return new FileDescriptorResponse(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/main/java/io/grpc/reflection/v1alpha/ListServiceResponse.java b/services/src/generated/main/java/io/grpc/reflection/v1alpha/ListServiceResponse.java
index b314a31..0692e88 100644
--- a/services/src/generated/main/java/io/grpc/reflection/v1alpha/ListServiceResponse.java
+++ b/services/src/generated/main/java/io/grpc/reflection/v1alpha/ListServiceResponse.java
@@ -33,6 +33,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -833,7 +836,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ListServiceResponse(input, extensionRegistry);
+      return new ListServiceResponse(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/main/java/io/grpc/reflection/v1alpha/ServerReflectionProto.java b/services/src/generated/main/java/io/grpc/reflection/v1alpha/ServerReflectionProto.java
index e79cdb2..b18131c 100644
--- a/services/src/generated/main/java/io/grpc/reflection/v1alpha/ServerReflectionProto.java
+++ b/services/src/generated/main/java/io/grpc/reflection/v1alpha/ServerReflectionProto.java
@@ -72,7 +72,7 @@
       "nsionRequestH\000\022\'\n\035all_extension_numbers_" +
       "of_type\030\006 \001(\tH\000\022\027\n\rlist_services\030\007 \001(\tH\000" +
       "B\021\n\017message_request\"E\n\020ExtensionRequest\022" +
-      "\027\n\017containing_type\030\001 \001(\t\022\030\n\020extension_nu",
+      "\027\n\017containing_type\030\001 \001(\t\022\030\n\020extension_nu" +
       "mber\030\002 \001(\005\"\321\003\n\030ServerReflectionResponse\022" +
       "\022\n\nvalid_host\030\001 \001(\t\022J\n\020original_request\030" +
       "\002 \001(\01320.grpc.reflection.v1alpha.ServerRe" +
@@ -82,7 +82,7 @@
       "mbers_response\030\005 \001(\01320.grpc.reflection.v" +
       "1alpha.ExtensionNumberResponseH\000\022N\n\026list" +
       "_services_response\030\006 \001(\0132,.grpc.reflecti" +
-      "on.v1alpha.ListServiceResponseH\000\022@\n\016erro",
+      "on.v1alpha.ListServiceResponseH\000\022@\n\016erro" +
       "r_response\030\007 \001(\0132&.grpc.reflection.v1alp" +
       "ha.ErrorResponseH\000B\022\n\020message_response\"7" +
       "\n\026FileDescriptorResponse\022\035\n\025file_descrip" +
@@ -92,7 +92,7 @@
       "ervice\030\001 \003(\0132(.grpc.reflection.v1alpha.S" +
       "erviceResponse\"\037\n\017ServiceResponse\022\014\n\004nam" +
       "e\030\001 \001(\t\":\n\rErrorResponse\022\022\n\nerror_code\030\001" +
-      " \001(\005\022\025\n\rerror_message\030\002 \001(\t2\223\001\n\020ServerRe",
+      " \001(\005\022\025\n\rerror_message\030\002 \001(\t2\223\001\n\020ServerRe" +
       "flection\022\177\n\024ServerReflectionInfo\0220.grpc." +
       "reflection.v1alpha.ServerReflectionReque" +
       "st\0321.grpc.reflection.v1alpha.ServerRefle" +
diff --git a/services/src/generated/main/java/io/grpc/reflection/v1alpha/ServerReflectionRequest.java b/services/src/generated/main/java/io/grpc/reflection/v1alpha/ServerReflectionRequest.java
index eab3c3e..e03a542 100644
--- a/services/src/generated/main/java/io/grpc/reflection/v1alpha/ServerReflectionRequest.java
+++ b/services/src/generated/main/java/io/grpc/reflection/v1alpha/ServerReflectionRequest.java
@@ -33,6 +33,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -1630,7 +1633,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ServerReflectionRequest(input, extensionRegistry);
+      return new ServerReflectionRequest(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/main/java/io/grpc/reflection/v1alpha/ServerReflectionResponse.java b/services/src/generated/main/java/io/grpc/reflection/v1alpha/ServerReflectionResponse.java
index 868e1e3..09254b1 100644
--- a/services/src/generated/main/java/io/grpc/reflection/v1alpha/ServerReflectionResponse.java
+++ b/services/src/generated/main/java/io/grpc/reflection/v1alpha/ServerReflectionResponse.java
@@ -33,6 +33,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -1817,7 +1820,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ServerReflectionResponse(input, extensionRegistry);
+      return new ServerReflectionResponse(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/main/java/io/grpc/reflection/v1alpha/ServiceResponse.java b/services/src/generated/main/java/io/grpc/reflection/v1alpha/ServiceResponse.java
index 4fa714b..031decc 100644
--- a/services/src/generated/main/java/io/grpc/reflection/v1alpha/ServiceResponse.java
+++ b/services/src/generated/main/java/io/grpc/reflection/v1alpha/ServiceResponse.java
@@ -34,6 +34,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -537,7 +540,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ServiceResponse(input, extensionRegistry);
+      return new ServiceResponse(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/test/java/io/grpc/reflection/testing/DynamicReflectionTestProto.java b/services/src/generated/test/java/io/grpc/reflection/testing/DynamicReflectionTestProto.java
index 9a9fe21..7142bde 100644
--- a/services/src/generated/test/java/io/grpc/reflection/testing/DynamicReflectionTestProto.java
+++ b/services/src/generated/test/java/io/grpc/reflection/testing/DynamicReflectionTestProto.java
@@ -32,7 +32,7 @@
       "esting.DynamicReply\"\0002s\n\025AnotherDynamicS" +
       "ervice\022Z\n\006Method\022\'.grpc.reflection.testi" +
       "ng.DynamicRequest\032%.grpc.reflection.test" +
-      "ing.DynamicReply\"\000B:\n\032io.grpc.reflection",
+      "ing.DynamicReply\"\000B:\n\032io.grpc.reflection" +
       ".testingB\032DynamicReflectionTestProtoP\001"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
diff --git a/services/src/generated/test/java/io/grpc/reflection/testing/DynamicReply.java b/services/src/generated/test/java/io/grpc/reflection/testing/DynamicReply.java
index ede0e79..d934af3 100644
--- a/services/src/generated/test/java/io/grpc/reflection/testing/DynamicReply.java
+++ b/services/src/generated/test/java/io/grpc/reflection/testing/DynamicReply.java
@@ -29,6 +29,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -521,7 +524,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new DynamicReply(input, extensionRegistry);
+      return new DynamicReply(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/test/java/io/grpc/reflection/testing/DynamicRequest.java b/services/src/generated/test/java/io/grpc/reflection/testing/DynamicRequest.java
index 63fe622..2ea9a14 100644
--- a/services/src/generated/test/java/io/grpc/reflection/testing/DynamicRequest.java
+++ b/services/src/generated/test/java/io/grpc/reflection/testing/DynamicRequest.java
@@ -29,6 +29,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -521,7 +524,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new DynamicRequest(input, extensionRegistry);
+      return new DynamicRequest(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/test/java/io/grpc/reflection/testing/EmptyMessage.java b/services/src/generated/test/java/io/grpc/reflection/testing/EmptyMessage.java
index 7d24bce..b7481c1 100644
--- a/services/src/generated/test/java/io/grpc/reflection/testing/EmptyMessage.java
+++ b/services/src/generated/test/java/io/grpc/reflection/testing/EmptyMessage.java
@@ -28,6 +28,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
     try {
@@ -364,7 +367,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new EmptyMessage(input, extensionRegistry);
+      return new EmptyMessage(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/test/java/io/grpc/reflection/testing/NestedTypeOuter.java b/services/src/generated/test/java/io/grpc/reflection/testing/NestedTypeOuter.java
index 25b0d4c..0c733a5 100644
--- a/services/src/generated/test/java/io/grpc/reflection/testing/NestedTypeOuter.java
+++ b/services/src/generated/test/java/io/grpc/reflection/testing/NestedTypeOuter.java
@@ -28,6 +28,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
     try {
@@ -98,6 +101,9 @@
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
       try {
@@ -178,6 +184,9 @@
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
         this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
         int mutable_bitField0_ = 0;
         com.google.protobuf.UnknownFieldSet.Builder unknownFields =
             com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -597,7 +606,7 @@
             com.google.protobuf.CodedInputStream input,
             com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws com.google.protobuf.InvalidProtocolBufferException {
-            return new Inner(input, extensionRegistry);
+          return new Inner(input, extensionRegistry);
         }
       };
 
@@ -911,7 +920,7 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws com.google.protobuf.InvalidProtocolBufferException {
-          return new Middle(input, extensionRegistry);
+        return new Middle(input, extensionRegistry);
       }
     };
 
@@ -1225,7 +1234,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new NestedTypeOuter(input, extensionRegistry);
+      return new NestedTypeOuter(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/test/java/io/grpc/reflection/testing/ReflectionTestProto.java b/services/src/generated/test/java/io/grpc/reflection/testing/ReflectionTestProto.java
index 0463ffb..e8e93f3 100644
--- a/services/src/generated/test/java/io/grpc/reflection/testing/ReflectionTestProto.java
+++ b/services/src/generated/test/java/io/grpc/reflection/testing/ReflectionTestProto.java
@@ -44,7 +44,7 @@
       "grpc.reflection.testing.Request\032\036.grpc.r" +
       "eflection.testing.Reply\"\000:4\n\003bar\022\'.grpc." +
       "reflection.testing.ThirdLevelType\030d \001(\005B" +
-      "3\n\032io.grpc.reflection.testingB\023Reflectio",
+      "3\n\032io.grpc.reflection.testingB\023Reflectio" +
       "nTestProtoP\001"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
diff --git a/services/src/generated/test/java/io/grpc/reflection/testing/Reply.java b/services/src/generated/test/java/io/grpc/reflection/testing/Reply.java
index 6c44225..508e940 100644
--- a/services/src/generated/test/java/io/grpc/reflection/testing/Reply.java
+++ b/services/src/generated/test/java/io/grpc/reflection/testing/Reply.java
@@ -29,6 +29,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -521,7 +524,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new Reply(input, extensionRegistry);
+      return new Reply(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/test/java/io/grpc/reflection/testing/Request.java b/services/src/generated/test/java/io/grpc/reflection/testing/Request.java
index cac5906..9d657af 100644
--- a/services/src/generated/test/java/io/grpc/reflection/testing/Request.java
+++ b/services/src/generated/test/java/io/grpc/reflection/testing/Request.java
@@ -29,6 +29,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -521,7 +524,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new Request(input, extensionRegistry);
+      return new Request(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/test/java/io/grpc/reflection/testing/ThirdLevelType.java b/services/src/generated/test/java/io/grpc/reflection/testing/ThirdLevelType.java
index 8467e0c..7b82b1a 100644
--- a/services/src/generated/test/java/io/grpc/reflection/testing/ThirdLevelType.java
+++ b/services/src/generated/test/java/io/grpc/reflection/testing/ThirdLevelType.java
@@ -30,6 +30,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -562,7 +565,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new ThirdLevelType(input, extensionRegistry);
+      return new ThirdLevelType(input, extensionRegistry);
     }
   };
 
diff --git a/services/src/generated/test/java/io/grpc/reflection/testing/TypeWithExtensions.java b/services/src/generated/test/java/io/grpc/reflection/testing/TypeWithExtensions.java
index cdad5bd..3f430ff 100644
--- a/services/src/generated/test/java/io/grpc/reflection/testing/TypeWithExtensions.java
+++ b/services/src/generated/test/java/io/grpc/reflection/testing/TypeWithExtensions.java
@@ -30,6 +30,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -562,7 +565,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new TypeWithExtensions(input, extensionRegistry);
+      return new TypeWithExtensions(input, extensionRegistry);
     }
   };
 
diff --git a/testing-proto/src/generated/main/java/io/grpc/testing/protobuf/SimpleRequest.java b/testing-proto/src/generated/main/java/io/grpc/testing/protobuf/SimpleRequest.java
index 1da90ed..f39c33c 100644
--- a/testing-proto/src/generated/main/java/io/grpc/testing/protobuf/SimpleRequest.java
+++ b/testing-proto/src/generated/main/java/io/grpc/testing/protobuf/SimpleRequest.java
@@ -33,6 +33,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -528,7 +531,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new SimpleRequest(input, extensionRegistry);
+      return new SimpleRequest(input, extensionRegistry);
     }
   };
 
diff --git a/testing-proto/src/generated/main/java/io/grpc/testing/protobuf/SimpleResponse.java b/testing-proto/src/generated/main/java/io/grpc/testing/protobuf/SimpleResponse.java
index d2725fa..b93f6b7 100644
--- a/testing-proto/src/generated/main/java/io/grpc/testing/protobuf/SimpleResponse.java
+++ b/testing-proto/src/generated/main/java/io/grpc/testing/protobuf/SimpleResponse.java
@@ -33,6 +33,9 @@
       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
       throws com.google.protobuf.InvalidProtocolBufferException {
     this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
     int mutable_bitField0_ = 0;
     com.google.protobuf.UnknownFieldSet.Builder unknownFields =
         com.google.protobuf.UnknownFieldSet.newBuilder();
@@ -528,7 +531,7 @@
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
-        return new SimpleResponse(input, extensionRegistry);
+      return new SimpleResponse(input, extensionRegistry);
     }
   };
 
diff --git a/testing-proto/src/generated/main/java/io/grpc/testing/protobuf/SimpleServiceProto.java b/testing-proto/src/generated/main/java/io/grpc/testing/protobuf/SimpleServiceProto.java
index 4f09838..b042763 100644
--- a/testing-proto/src/generated/main/java/io/grpc/testing/protobuf/SimpleServiceProto.java
+++ b/testing-proto/src/generated/main/java/io/grpc/testing/protobuf/SimpleServiceProto.java
@@ -42,7 +42,7 @@
       "lientStreamingRpc\022\033.grpc.testing.SimpleR" +
       "equest\032\034.grpc.testing.SimpleResponse\"\000(\001" +
       "\022S\n\022ServerStreamingRpc\022\033.grpc.testing.Si" +
-      "mpleRequest\032\034.grpc.testing.SimpleRespons",
+      "mpleRequest\032\034.grpc.testing.SimpleRespons" +
       "e\"\0000\001\022S\n\020BidiStreamingRpc\022\033.grpc.testing" +
       ".SimpleRequest\032\034.grpc.testing.SimpleResp" +
       "onse\"\000(\0010\001B0\n\030io.grpc.testing.protobufB\022" +