Bump Protobuf to 3.21.7
diff --git a/COMPILING.md b/COMPILING.md
index 1423ec8..026aec1 100644
--- a/COMPILING.md
+++ b/COMPILING.md
@@ -44,11 +44,11 @@
 generation. Most users only need to use `skipCodegen=true` as discussed above.
 
 ### Build Protobuf
-The codegen plugin is C++ code and requires protobuf 3.21.1 or later.
+The codegen plugin is C++ code and requires protobuf 3.21.7 or later.
 
 For Linux, Mac and MinGW:
 ```
-$ PROTOBUF_VERSION=3.21.1
+$ PROTOBUF_VERSION=3.21.7
 $ curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOBUF_VERSION/protobuf-all-$PROTOBUF_VERSION.tar.gz
 $ tar xzf protobuf-all-$PROTOBUF_VERSION.tar.gz
 $ cd protobuf-$PROTOBUF_VERSION
diff --git a/examples/android/clientcache/app/build.gradle b/examples/android/clientcache/app/build.gradle
index ecc4c70..827609a 100644
--- a/examples/android/clientcache/app/build.gradle
+++ b/examples/android/clientcache/app/build.gradle
@@ -32,7 +32,7 @@
 }
 
 protobuf {
-    protoc { artifact = 'com.google.protobuf:protoc:3.21.1' }
+    protoc { artifact = 'com.google.protobuf:protoc:3.21.7' }
     plugins {
         grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.51.0-SNAPSHOT' // CURRENT_GRPC_VERSION
         }
diff --git a/examples/android/helloworld/app/build.gradle b/examples/android/helloworld/app/build.gradle
index 9e1aad8..94e86df 100644
--- a/examples/android/helloworld/app/build.gradle
+++ b/examples/android/helloworld/app/build.gradle
@@ -30,7 +30,7 @@
 }
 
 protobuf {
-    protoc { artifact = 'com.google.protobuf:protoc:3.21.1' }
+    protoc { artifact = 'com.google.protobuf:protoc:3.21.7' }
     plugins {
         grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.51.0-SNAPSHOT' // CURRENT_GRPC_VERSION
         }
diff --git a/examples/android/routeguide/app/build.gradle b/examples/android/routeguide/app/build.gradle
index 5a41e60..953a14c 100644
--- a/examples/android/routeguide/app/build.gradle
+++ b/examples/android/routeguide/app/build.gradle
@@ -30,7 +30,7 @@
 }
 
 protobuf {
-    protoc { artifact = 'com.google.protobuf:protoc:3.21.1' }
+    protoc { artifact = 'com.google.protobuf:protoc:3.21.7' }
     plugins {
         grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.51.0-SNAPSHOT' // CURRENT_GRPC_VERSION
         }
diff --git a/examples/android/strictmode/app/build.gradle b/examples/android/strictmode/app/build.gradle
index 10c8a62..fa70153 100644
--- a/examples/android/strictmode/app/build.gradle
+++ b/examples/android/strictmode/app/build.gradle
@@ -31,7 +31,7 @@
 }
 
 protobuf {
-    protoc { artifact = 'com.google.protobuf:protoc:3.21.1' }
+    protoc { artifact = 'com.google.protobuf:protoc:3.21.7' }
     plugins {
         grpc { artifact = 'io.grpc:protoc-gen-grpc-java:1.51.0-SNAPSHOT' // CURRENT_GRPC_VERSION
         }
diff --git a/examples/build.gradle b/examples/build.gradle
index 223bc00..89e066d 100644
--- a/examples/build.gradle
+++ b/examples/build.gradle
@@ -23,7 +23,7 @@
 // Feel free to delete the comment at the next line. It is just for safely
 // updating the version in our release process.
 def grpcVersion = '1.51.0-SNAPSHOT' // CURRENT_GRPC_VERSION
-def protobufVersion = '3.21.1'
+def protobufVersion = '3.21.7'
 def protocVersion = protobufVersion
 
 dependencies {
diff --git a/examples/example-alts/build.gradle b/examples/example-alts/build.gradle
index ac3cdb4..eb8fa41 100644
--- a/examples/example-alts/build.gradle
+++ b/examples/example-alts/build.gradle
@@ -24,7 +24,7 @@
 // Feel free to delete the comment at the next line. It is just for safely
 // updating the version in our release process.
 def grpcVersion = '1.51.0-SNAPSHOT' // CURRENT_GRPC_VERSION
-def protocVersion = '3.21.1'
+def protocVersion = '3.21.7'
 
 dependencies {
     // grpc-alts transitively depends on grpc-netty-shaded, grpc-protobuf, and grpc-stub
diff --git a/examples/example-gauth/build.gradle b/examples/example-gauth/build.gradle
index 17ce896..448ec37 100644
--- a/examples/example-gauth/build.gradle
+++ b/examples/example-gauth/build.gradle
@@ -24,7 +24,7 @@
 // Feel free to delete the comment at the next line. It is just for safely
 // updating the version in our release process.
 def grpcVersion = '1.51.0-SNAPSHOT' // CURRENT_GRPC_VERSION
-def protobufVersion = '3.21.1'
+def protobufVersion = '3.21.7'
 def protocVersion = protobufVersion
 
 
diff --git a/examples/example-gauth/pom.xml b/examples/example-gauth/pom.xml
index cad6567..9f36e0e 100644
--- a/examples/example-gauth/pom.xml
+++ b/examples/example-gauth/pom.xml
@@ -13,7 +13,7 @@
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <grpc.version>1.51.0-SNAPSHOT</grpc.version><!-- CURRENT_GRPC_VERSION -->
-    <protobuf.version>3.21.1</protobuf.version>
+    <protobuf.version>3.21.7</protobuf.version>
     <!-- required for jdk9 -->
     <maven.compiler.source>1.7</maven.compiler.source>
     <maven.compiler.target>1.7</maven.compiler.target>
diff --git a/examples/example-hostname/build.gradle b/examples/example-hostname/build.gradle
index 3defd59..c3051b9 100644
--- a/examples/example-hostname/build.gradle
+++ b/examples/example-hostname/build.gradle
@@ -22,7 +22,7 @@
 // Feel free to delete the comment at the next line. It is just for safely
 // updating the version in our release process.
 def grpcVersion = '1.51.0-SNAPSHOT' // CURRENT_GRPC_VERSION
-def protobufVersion = '3.21.1'
+def protobufVersion = '3.21.7'
 
 dependencies {
     implementation "io.grpc:grpc-protobuf:${grpcVersion}"
diff --git a/examples/example-hostname/pom.xml b/examples/example-hostname/pom.xml
index 05da2d9..e111c24 100644
--- a/examples/example-hostname/pom.xml
+++ b/examples/example-hostname/pom.xml
@@ -13,7 +13,7 @@
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <grpc.version>1.51.0-SNAPSHOT</grpc.version><!-- CURRENT_GRPC_VERSION -->
-    <protoc.version>3.21.1</protoc.version>
+    <protoc.version>3.21.7</protoc.version>
     <!-- required for jdk9 -->
     <maven.compiler.source>1.7</maven.compiler.source>
     <maven.compiler.target>1.7</maven.compiler.target>
diff --git a/examples/example-jwt-auth/build.gradle b/examples/example-jwt-auth/build.gradle
index c7efd9c..968ad9c 100644
--- a/examples/example-jwt-auth/build.gradle
+++ b/examples/example-jwt-auth/build.gradle
@@ -23,7 +23,7 @@
 // Feel free to delete the comment at the next line. It is just for safely
 // updating the version in our release process.
 def grpcVersion = '1.51.0-SNAPSHOT' // CURRENT_GRPC_VERSION
-def protobufVersion = '3.21.1'
+def protobufVersion = '3.21.7'
 def protocVersion = protobufVersion
 
 dependencies {
diff --git a/examples/example-jwt-auth/pom.xml b/examples/example-jwt-auth/pom.xml
index 3047ee8..d6223b1 100644
--- a/examples/example-jwt-auth/pom.xml
+++ b/examples/example-jwt-auth/pom.xml
@@ -14,8 +14,8 @@
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <grpc.version>1.51.0-SNAPSHOT</grpc.version><!-- CURRENT_GRPC_VERSION -->
-    <protobuf.version>3.21.1</protobuf.version>
-    <protoc.version>3.21.1</protoc.version>
+    <protobuf.version>3.21.7</protobuf.version>
+    <protoc.version>3.21.7</protoc.version>
     <!-- required for jdk9 -->
     <maven.compiler.source>1.7</maven.compiler.source>
     <maven.compiler.target>1.7</maven.compiler.target>
diff --git a/examples/example-orca/build.gradle b/examples/example-orca/build.gradle
index 97e753f..ba2acf2 100644
--- a/examples/example-orca/build.gradle
+++ b/examples/example-orca/build.gradle
@@ -18,7 +18,7 @@
 targetCompatibility = 1.8
 
 def grpcVersion = '1.51.0-SNAPSHOT' // CURRENT_GRPC_VERSION
-def protocVersion = '3.21.1'
+def protocVersion = '3.21.7'
 
 dependencies {
     implementation "io.grpc:grpc-protobuf:${grpcVersion}"
diff --git a/examples/example-tls/build.gradle b/examples/example-tls/build.gradle
index 4737c2f..66365ce 100644
--- a/examples/example-tls/build.gradle
+++ b/examples/example-tls/build.gradle
@@ -24,7 +24,7 @@
 // Feel free to delete the comment at the next line. It is just for safely
 // updating the version in our release process.
 def grpcVersion = '1.51.0-SNAPSHOT' // CURRENT_GRPC_VERSION
-def protocVersion = '3.21.1'
+def protocVersion = '3.21.7'
 
 dependencies {
     implementation "io.grpc:grpc-protobuf:${grpcVersion}"
diff --git a/examples/example-tls/pom.xml b/examples/example-tls/pom.xml
index 95ac04e..e3573aa 100644
--- a/examples/example-tls/pom.xml
+++ b/examples/example-tls/pom.xml
@@ -13,7 +13,7 @@
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <grpc.version>1.51.0-SNAPSHOT</grpc.version><!-- CURRENT_GRPC_VERSION -->
-    <protoc.version>3.21.1</protoc.version>
+    <protoc.version>3.21.7</protoc.version>
     <netty.tcnative.version>2.0.54.Final</netty.tcnative.version>
     <!-- required for jdk9 -->
     <maven.compiler.source>1.7</maven.compiler.source>
diff --git a/examples/example-xds/build.gradle b/examples/example-xds/build.gradle
index b4af55f..6acbaa3 100644
--- a/examples/example-xds/build.gradle
+++ b/examples/example-xds/build.gradle
@@ -24,7 +24,7 @@
 // updating the version in our release process.
 def grpcVersion = '1.51.0-SNAPSHOT' // CURRENT_GRPC_VERSION
 def nettyTcNativeVersion = '2.0.31.Final'
-def protocVersion = '3.21.1'
+def protocVersion = '3.21.7'
 
 dependencies {
     implementation "io.grpc:grpc-protobuf:${grpcVersion}"
diff --git a/examples/pom.xml b/examples/pom.xml
index 5a417ca..b663115 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -13,8 +13,8 @@
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <grpc.version>1.51.0-SNAPSHOT</grpc.version><!-- CURRENT_GRPC_VERSION -->
-    <protobuf.version>3.21.1</protobuf.version>
-    <protoc.version>3.21.1</protoc.version>
+    <protobuf.version>3.21.7</protobuf.version>
+    <protoc.version>3.21.7</protoc.version>
     <!-- required for jdk9 -->
     <maven.compiler.source>1.7</maven.compiler.source>
     <maven.compiler.target>1.7</maven.compiler.target>
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 3351eba..37d443c 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -8,7 +8,7 @@
 netty = '4.1.79.Final'
 nettytcnative = '2.0.54.Final'
 opencensus = "0.31.0"
-protobuf = "3.21.1"
+protobuf = "3.21.7"
 
 [libraries]
 android-annotations = "com.google.android:annotations:4.1.1.4"
diff --git a/repositories.bzl b/repositories.bzl
index cdf6d69..cced1d2 100644
--- a/repositories.bzl
+++ b/repositories.bzl
@@ -150,18 +150,18 @@
     # This statement defines the @com_google_protobuf repo.
     http_archive(
         name = "com_google_protobuf",
-        sha256 = "2d9084d3dd13b86ca2e811d2331f780eb86f6d7cb02b405426e3c80dcbfabf25",
-        strip_prefix = "protobuf-3.21.1",
-        urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.21.1.zip"],
+        sha256 = "c72840a5081484c4ac20789ea5bb5d5de6bc7c477ad76e7109fda2bc4e630fe6",
+        strip_prefix = "protobuf-3.21.7",
+        urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.21.7.zip"],
     )
 
 def com_google_protobuf_javalite():
     # java_lite_proto_library rules implicitly depend on @com_google_protobuf_javalite
     http_archive(
         name = "com_google_protobuf_javalite",
-        sha256 = "2d9084d3dd13b86ca2e811d2331f780eb86f6d7cb02b405426e3c80dcbfabf25",
-        strip_prefix = "protobuf-3.21.1",
-        urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.21.1.zip"],
+        sha256 = "c72840a5081484c4ac20789ea5bb5d5de6bc7c477ad76e7109fda2bc4e630fe6",
+        strip_prefix = "protobuf-3.21.7",
+        urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.21.7.zip"],
     )
 
 def io_grpc_grpc_proto():