diff --git a/servicetalk-buffer-api/gradle/spotbugs/test-exclusions.xml b/servicetalk-buffer-api/gradle/spotbugs/test-exclusions.xml
new file mode 100644
index 0000000000..500404e766
--- /dev/null
+++ b/servicetalk-buffer-api/gradle/spotbugs/test-exclusions.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-client-api-internal/gradle/spotbugs/test-exclusions.xml b/servicetalk-client-api-internal/gradle/spotbugs/test-exclusions.xml
new file mode 100644
index 0000000000..e88990d20f
--- /dev/null
+++ b/servicetalk-client-api-internal/gradle/spotbugs/test-exclusions.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
diff --git a/servicetalk-client-api/gradle/spotbugs/test-exclusions.xml b/servicetalk-client-api/gradle/spotbugs/test-exclusions.xml
index a10553e0a3..8bd196c0d1 100644
--- a/servicetalk-client-api/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-client-api/gradle/spotbugs/test-exclusions.xml
@@ -20,4 +20,12 @@
+
+
+
+
+
+
+
+
diff --git a/servicetalk-concurrent-api-internal/gradle/spotbugs/main-exclusions.xml b/servicetalk-concurrent-api-internal/gradle/spotbugs/main-exclusions.xml
new file mode 100644
index 0000000000..04c77edbcb
--- /dev/null
+++ b/servicetalk-concurrent-api-internal/gradle/spotbugs/main-exclusions.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-concurrent-api-internal/gradle/spotbugs/test-exclusions.xml b/servicetalk-concurrent-api-internal/gradle/spotbugs/test-exclusions.xml
index 9b52a096a8..1428faac7f 100644
--- a/servicetalk-concurrent-api-internal/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-concurrent-api-internal/gradle/spotbugs/test-exclusions.xml
@@ -25,4 +25,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-concurrent-api-test/gradle/spotbugs/main-exclusions.xml b/servicetalk-concurrent-api-test/gradle/spotbugs/main-exclusions.xml
new file mode 100644
index 0000000000..ecdcfb05c6
--- /dev/null
+++ b/servicetalk-concurrent-api-test/gradle/spotbugs/main-exclusions.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-concurrent-api-test/gradle/spotbugs/test-exclusions.xml b/servicetalk-concurrent-api-test/gradle/spotbugs/test-exclusions.xml
new file mode 100644
index 0000000000..e61ee2b6da
--- /dev/null
+++ b/servicetalk-concurrent-api-test/gradle/spotbugs/test-exclusions.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
diff --git a/servicetalk-concurrent-api/gradle/spotbugs/main-exclusions.xml b/servicetalk-concurrent-api/gradle/spotbugs/main-exclusions.xml
index 8100435296..972aa5f78a 100644
--- a/servicetalk-concurrent-api/gradle/spotbugs/main-exclusions.xml
+++ b/servicetalk-concurrent-api/gradle/spotbugs/main-exclusions.xml
@@ -57,4 +57,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-concurrent-api/gradle/spotbugs/test-exclusions.xml b/servicetalk-concurrent-api/gradle/spotbugs/test-exclusions.xml
index fe13580606..a2bfeb6fba 100644
--- a/servicetalk-concurrent-api/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-concurrent-api/gradle/spotbugs/test-exclusions.xml
@@ -51,4 +51,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-concurrent-api/gradle/spotbugs/testFixtures-exclusions.xml b/servicetalk-concurrent-api/gradle/spotbugs/testFixtures-exclusions.xml
index 5777964d26..32c2415d81 100644
--- a/servicetalk-concurrent-api/gradle/spotbugs/testFixtures-exclusions.xml
+++ b/servicetalk-concurrent-api/gradle/spotbugs/testFixtures-exclusions.xml
@@ -21,4 +21,9 @@
+
+
+
+
+
diff --git a/servicetalk-concurrent-api/src/main/java/io/servicetalk/concurrent/api/CopyOnWriteContextMap.java b/servicetalk-concurrent-api/src/main/java/io/servicetalk/concurrent/api/CopyOnWriteContextMap.java
index 6bcd5dc2d9..53aef60c01 100644
--- a/servicetalk-concurrent-api/src/main/java/io/servicetalk/concurrent/api/CopyOnWriteContextMap.java
+++ b/servicetalk-concurrent-api/src/main/java/io/servicetalk/concurrent/api/CopyOnWriteContextMap.java
@@ -2712,7 +2712,7 @@ private CopyContextMap removeBelowSeven(int i) {
(Key>) context[8], context[9],
(Key>) context[10], context[11]);
default:
- throw new RuntimeException("Programming error, unable to remove a key at index=" + i);
+ throw new IllegalStateException("Programming error, unable to remove a key at index=" + i);
}
}
@@ -2838,7 +2838,7 @@ private CopyContextMap removeBelowSeven(final GrowableIntArray indexesToRemove)
default:
break;
}
- throw new RuntimeException("Programming error, unable to reduce from " + size() + " to " +
+ throw new IllegalStateException("Programming error, unable to reduce from " + size() + " to " +
(size() - indexesToRemove.count()));
}
diff --git a/servicetalk-concurrent-api/src/main/java/io/servicetalk/concurrent/api/CopyOnWriteExecutorPluginSet.java b/servicetalk-concurrent-api/src/main/java/io/servicetalk/concurrent/api/CopyOnWriteExecutorPluginSet.java
index d08d5ee291..3d5e47c18e 100644
--- a/servicetalk-concurrent-api/src/main/java/io/servicetalk/concurrent/api/CopyOnWriteExecutorPluginSet.java
+++ b/servicetalk-concurrent-api/src/main/java/io/servicetalk/concurrent/api/CopyOnWriteExecutorPluginSet.java
@@ -175,7 +175,7 @@ public CopyOnWriteSet remove(final ExecutorPlugin plugin) {
case 2:
return new TwoExecutorPluginSet(plugins[0], plugins[1]);
default:
- throw new RuntimeException("programming error. i: " + i);
+ throw new IllegalStateException("programming error. i: " + i);
}
}
ExecutorPlugin[] newArray = new ExecutorPlugin[plugins.length - 1];
diff --git a/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/TestCompletableTest.java b/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/TestCompletableTest.java
index d58a5704a1..5ef63bebcf 100644
--- a/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/TestCompletableTest.java
+++ b/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/TestCompletableTest.java
@@ -49,7 +49,7 @@ void testNonResubscribeableCompletable() {
source.subscribe(subscriber2);
- Exception e = assertThrows(RuntimeException.class, () -> source.onComplete());
+ AssertionError e = assertThrows(AssertionError.class, () -> source.onComplete());
assertEquals("Unexpected exception(s) encountered", e.getMessage());
assertThat(e.getCause(), allOf(instanceOf(IllegalStateException.class),
hasProperty("message", startsWith("Duplicate subscriber"))));
diff --git a/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/TestPublisherTest.java b/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/TestPublisherTest.java
index ed6fa36b48..891ef8e890 100644
--- a/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/TestPublisherTest.java
+++ b/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/TestPublisherTest.java
@@ -59,7 +59,7 @@ void testNonResubscribeablePublisher() {
source.subscribe(subscriber2);
- Exception e = assertThrows(RuntimeException.class, () -> source.onComplete());
+ AssertionError e = assertThrows(AssertionError.class, () -> source.onComplete());
assertEquals("Unexpected exception(s) encountered", e.getMessage());
assertThat(e.getCause(), allOf(instanceOf(IllegalStateException.class),
hasProperty("message",
diff --git a/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/TestSingleTest.java b/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/TestSingleTest.java
index 53235cfe90..9946f1b79b 100644
--- a/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/TestSingleTest.java
+++ b/servicetalk-concurrent-api/src/test/java/io/servicetalk/concurrent/api/TestSingleTest.java
@@ -47,7 +47,7 @@ void testNonResubscribeableSingle() {
source.subscribe(subscriber2);
- Exception e = assertThrows(RuntimeException.class, () -> source.onSuccess("b"));
+ AssertionError e = assertThrows(AssertionError.class, () -> source.onSuccess("b"));
assertEquals("Unexpected exception(s) encountered", e.getMessage());
assertThat(e.getCause(), allOf(instanceOf(IllegalStateException.class),
hasProperty("message",
diff --git a/servicetalk-concurrent-api/src/testFixtures/java/io/servicetalk/concurrent/api/TestCompletable.java b/servicetalk-concurrent-api/src/testFixtures/java/io/servicetalk/concurrent/api/TestCompletable.java
index 71537878ac..b28d6e5394 100644
--- a/servicetalk-concurrent-api/src/testFixtures/java/io/servicetalk/concurrent/api/TestCompletable.java
+++ b/servicetalk-concurrent-api/src/testFixtures/java/io/servicetalk/concurrent/api/TestCompletable.java
@@ -148,7 +148,7 @@ public void onError(final Throwable t) {
private Subscriber checkSubscriberAndExceptions() {
if (!exceptions.isEmpty()) {
- final RuntimeException exception = new RuntimeException("Unexpected exception(s) encountered",
+ final AssertionError exception = new AssertionError("Unexpected exception(s) encountered",
exceptions.get(0));
for (int i = 1; i < exceptions.size(); i++) {
addSuppressed(exception, exceptions.get(i));
@@ -353,7 +353,7 @@ private Subscriber waitForSubscriber() {
Thread.currentThread().interrupt();
return throwException(e);
} catch (ExecutionException e) {
- throw new RuntimeException(e);
+ return throwException(e);
}
}
}
diff --git a/servicetalk-concurrent-api/src/testFixtures/java/io/servicetalk/concurrent/api/TestPublisher.java b/servicetalk-concurrent-api/src/testFixtures/java/io/servicetalk/concurrent/api/TestPublisher.java
index e43dc65656..ef19774bdd 100644
--- a/servicetalk-concurrent-api/src/testFixtures/java/io/servicetalk/concurrent/api/TestPublisher.java
+++ b/servicetalk-concurrent-api/src/testFixtures/java/io/servicetalk/concurrent/api/TestPublisher.java
@@ -174,7 +174,7 @@ public void onError(final Throwable t) {
private Subscriber super T> checkSubscriberAndExceptions() {
if (!exceptions.isEmpty()) {
- final RuntimeException exception = new RuntimeException("Unexpected exception(s) encountered",
+ final AssertionError exception = new AssertionError("Unexpected exception(s) encountered",
exceptions.get(0));
for (int i = 1; i < exceptions.size(); i++) {
addSuppressed(exception, exceptions.get(i));
@@ -422,7 +422,7 @@ private Subscriber super T> waitForSubscriber() {
Thread.currentThread().interrupt();
return throwException(e);
} catch (ExecutionException e) {
- throw new RuntimeException(e);
+ return throwException(e);
}
}
}
diff --git a/servicetalk-concurrent-api/src/testFixtures/java/io/servicetalk/concurrent/api/TestSingle.java b/servicetalk-concurrent-api/src/testFixtures/java/io/servicetalk/concurrent/api/TestSingle.java
index 4d61626f6e..d4d8abb8a6 100644
--- a/servicetalk-concurrent-api/src/testFixtures/java/io/servicetalk/concurrent/api/TestSingle.java
+++ b/servicetalk-concurrent-api/src/testFixtures/java/io/servicetalk/concurrent/api/TestSingle.java
@@ -151,7 +151,7 @@ public void onError(final Throwable t) {
private Subscriber super T> checkSubscriberAndExceptions() {
if (!exceptions.isEmpty()) {
- final RuntimeException exception = new RuntimeException("Unexpected exception(s) encountered",
+ final AssertionError exception = new AssertionError("Unexpected exception(s) encountered",
exceptions.get(0));
for (int i = 1; i < exceptions.size(); i++) {
addSuppressed(exception, exceptions.get(i));
diff --git a/servicetalk-concurrent-internal/gradle/spotbugs/main-exclusions.xml b/servicetalk-concurrent-internal/gradle/spotbugs/main-exclusions.xml
index deed4d6c10..8880bc393a 100644
--- a/servicetalk-concurrent-internal/gradle/spotbugs/main-exclusions.xml
+++ b/servicetalk-concurrent-internal/gradle/spotbugs/main-exclusions.xml
@@ -27,4 +27,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-concurrent-internal/gradle/spotbugs/test-exclusions.xml b/servicetalk-concurrent-internal/gradle/spotbugs/test-exclusions.xml
index 9b52a096a8..13abd228e8 100644
--- a/servicetalk-concurrent-internal/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-concurrent-internal/gradle/spotbugs/test-exclusions.xml
@@ -25,4 +25,8 @@
+
+
+
+
diff --git a/servicetalk-concurrent-jdkflow/gradle/spotbugs/test-exclusions.xml b/servicetalk-concurrent-jdkflow/gradle/spotbugs/test-exclusions.xml
new file mode 100644
index 0000000000..500404e766
--- /dev/null
+++ b/servicetalk-concurrent-jdkflow/gradle/spotbugs/test-exclusions.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-concurrent-reactivestreams/gradle/spotbugs/test-exclusions.xml b/servicetalk-concurrent-reactivestreams/gradle/spotbugs/test-exclusions.xml
new file mode 100644
index 0000000000..500404e766
--- /dev/null
+++ b/servicetalk-concurrent-reactivestreams/gradle/spotbugs/test-exclusions.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-concurrent-test-internal/gradle/spotbugs/test-exclusions.xml b/servicetalk-concurrent-test-internal/gradle/spotbugs/test-exclusions.xml
new file mode 100644
index 0000000000..e61ee2b6da
--- /dev/null
+++ b/servicetalk-concurrent-test-internal/gradle/spotbugs/test-exclusions.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
diff --git a/servicetalk-concurrent/gradle/spotbugs/main-exclusions.xml b/servicetalk-concurrent/gradle/spotbugs/main-exclusions.xml
new file mode 100644
index 0000000000..9b7ccdaa72
--- /dev/null
+++ b/servicetalk-concurrent/gradle/spotbugs/main-exclusions.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-data-jackson-jersey/gradle/spotbugs/test-exclusions.xml b/servicetalk-data-jackson-jersey/gradle/spotbugs/test-exclusions.xml
new file mode 100644
index 0000000000..500404e766
--- /dev/null
+++ b/servicetalk-data-jackson-jersey/gradle/spotbugs/test-exclusions.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-data-jackson/gradle/spotbugs/test-exclusions.xml b/servicetalk-data-jackson/gradle/spotbugs/test-exclusions.xml
index 1e109e57b4..90c20cf9ca 100644
--- a/servicetalk-data-jackson/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-data-jackson/gradle/spotbugs/test-exclusions.xml
@@ -28,4 +28,8 @@
+
+
+
+
diff --git a/servicetalk-data-protobuf-jersey/gradle/spotbugs/test-exclusions.xml b/servicetalk-data-protobuf-jersey/gradle/spotbugs/test-exclusions.xml
index 3c332a5d3a..cfe45ee004 100644
--- a/servicetalk-data-protobuf-jersey/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-data-protobuf-jersey/gradle/spotbugs/test-exclusions.xml
@@ -23,4 +23,12 @@
+
+
+
+
+
+
+
+
diff --git a/servicetalk-data-protobuf/gradle/spotbugs/test-exclusions.xml b/servicetalk-data-protobuf/gradle/spotbugs/test-exclusions.xml
index a36fb3866a..f8fbdb0df4 100644
--- a/servicetalk-data-protobuf/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-data-protobuf/gradle/spotbugs/test-exclusions.xml
@@ -19,4 +19,12 @@
+
+
+
+
+
+
+
+
diff --git a/servicetalk-dns-discovery-netty/gradle/spotbugs/main-exclusions.xml b/servicetalk-dns-discovery-netty/gradle/spotbugs/main-exclusions.xml
index 5b43ffe555..e91650cbbd 100644
--- a/servicetalk-dns-discovery-netty/gradle/spotbugs/main-exclusions.xml
+++ b/servicetalk-dns-discovery-netty/gradle/spotbugs/main-exclusions.xml
@@ -21,4 +21,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-dns-discovery-netty/gradle/spotbugs/test-exclusions.xml b/servicetalk-dns-discovery-netty/gradle/spotbugs/test-exclusions.xml
index f3b96891a1..bdabf555ea 100644
--- a/servicetalk-dns-discovery-netty/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-dns-discovery-netty/gradle/spotbugs/test-exclusions.xml
@@ -31,4 +31,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-dns-discovery-netty/src/test/java/io/servicetalk/dns/discovery/netty/TestDnsServer.java b/servicetalk-dns-discovery-netty/src/test/java/io/servicetalk/dns/discovery/netty/TestDnsServer.java
index 83cdff0ace..ef29379d35 100644
--- a/servicetalk-dns-discovery-netty/src/test/java/io/servicetalk/dns/discovery/netty/TestDnsServer.java
+++ b/servicetalk-dns-discovery-netty/src/test/java/io/servicetalk/dns/discovery/netty/TestDnsServer.java
@@ -142,7 +142,7 @@ protected void putResourceRecordData(IoBuffer ioBuffer, ResourceRecord resourceR
try {
bytes = InetAddress.getByName(resourceRecord.get(DnsAttribute.IP_ADDRESS)).getAddress();
} catch (UnknownHostException e) {
- throw new RuntimeException(e);
+ throw new IllegalStateException(e);
}
ioBuffer.put(bytes);
}
diff --git a/servicetalk-encoding-netty/gradle/spotbugs/test-exclusions.xml b/servicetalk-encoding-netty/gradle/spotbugs/test-exclusions.xml
new file mode 100644
index 0000000000..500404e766
--- /dev/null
+++ b/servicetalk-encoding-netty/gradle/spotbugs/test-exclusions.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-gradle-plugin-internal/src/main/groovy/io/servicetalk/gradle/plugin/internal/Versions.groovy b/servicetalk-gradle-plugin-internal/src/main/groovy/io/servicetalk/gradle/plugin/internal/Versions.groovy
index a767e44404..66aa2162bf 100644
--- a/servicetalk-gradle-plugin-internal/src/main/groovy/io/servicetalk/gradle/plugin/internal/Versions.groovy
+++ b/servicetalk-gradle-plugin-internal/src/main/groovy/io/servicetalk/gradle/plugin/internal/Versions.groovy
@@ -22,7 +22,7 @@ import static org.gradle.api.JavaVersion.VERSION_1_8
final class Versions {
static final String CHECKSTYLE_VERSION = "9.2"
static final String PMD_VERSION = "6.41.0"
- static final String SPOTBUGS_VERSION = "4.6.0"
+ static final String SPOTBUGS_VERSION = "4.7.0"
static final String PITEST_VERSION = "1.7.3"
static final String PITEST_JUNIT5_PLUGIN_VERSION = "0.15"
static final JavaVersion TARGET_VERSION = VERSION_1_8
diff --git a/servicetalk-grpc-api/gradle/spotbugs/main-exclusions.xml b/servicetalk-grpc-api/gradle/spotbugs/main-exclusions.xml
index 233d5bd41b..4ad373bbb4 100644
--- a/servicetalk-grpc-api/gradle/spotbugs/main-exclusions.xml
+++ b/servicetalk-grpc-api/gradle/spotbugs/main-exclusions.xml
@@ -1,6 +1,6 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-grpc-health/gradle/spotbugs/test-exclusions.xml b/servicetalk-grpc-health/gradle/spotbugs/test-exclusions.xml
new file mode 100644
index 0000000000..500404e766
--- /dev/null
+++ b/servicetalk-grpc-health/gradle/spotbugs/test-exclusions.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-grpc-netty/gradle/spotbugs/main-exclusions.xml b/servicetalk-grpc-netty/gradle/spotbugs/main-exclusions.xml
new file mode 100644
index 0000000000..c14fe30e7f
--- /dev/null
+++ b/servicetalk-grpc-netty/gradle/spotbugs/main-exclusions.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-grpc-netty/gradle/spotbugs/test-exclusions.xml b/servicetalk-grpc-netty/gradle/spotbugs/test-exclusions.xml
index ba3e5587c4..a396334e69 100644
--- a/servicetalk-grpc-netty/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-grpc-netty/gradle/spotbugs/test-exclusions.xml
@@ -50,4 +50,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-grpc-netty/src/test/java/io/servicetalk/grpc/netty/GrpcOverH1.java b/servicetalk-grpc-netty/src/test/java/io/servicetalk/grpc/netty/GrpcOverH1Test.java
similarity index 99%
rename from servicetalk-grpc-netty/src/test/java/io/servicetalk/grpc/netty/GrpcOverH1.java
rename to servicetalk-grpc-netty/src/test/java/io/servicetalk/grpc/netty/GrpcOverH1Test.java
index 6d2953a3e0..98e2d4ecb3 100644
--- a/servicetalk-grpc-netty/src/test/java/io/servicetalk/grpc/netty/GrpcOverH1.java
+++ b/servicetalk-grpc-netty/src/test/java/io/servicetalk/grpc/netty/GrpcOverH1Test.java
@@ -37,7 +37,7 @@
import static io.servicetalk.transport.netty.internal.AddressUtils.localAddress;
import static org.junit.jupiter.api.Assertions.assertEquals;
-final class GrpcOverH1 {
+final class GrpcOverH1Test {
private static final HttpProtocolConfig[] H1 = new HttpProtocolConfig[] {h1Default()};
private static final HttpProtocolConfig[] H1H2 = new HttpProtocolConfig[] {h1Default(), h2Default()};
private static final HttpProtocolConfig[] H2H1 = new HttpProtocolConfig[] {h2Default(), h1Default()};
diff --git a/servicetalk-http-api/gradle/spotbugs/main-exclusions.xml b/servicetalk-http-api/gradle/spotbugs/main-exclusions.xml
index 28a2683dbd..3955ff0ab2 100644
--- a/servicetalk-http-api/gradle/spotbugs/main-exclusions.xml
+++ b/servicetalk-http-api/gradle/spotbugs/main-exclusions.xml
@@ -1,6 +1,6 @@
+
+
+
+
+
+
diff --git a/servicetalk-http-router-jersey/gradle/spotbugs/main-exclusions.xml b/servicetalk-http-router-jersey/gradle/spotbugs/main-exclusions.xml
index ecb248b288..3773d0e990 100644
--- a/servicetalk-http-router-jersey/gradle/spotbugs/main-exclusions.xml
+++ b/servicetalk-http-router-jersey/gradle/spotbugs/main-exclusions.xml
@@ -54,4 +54,10 @@
+
+
+
+
+
+
diff --git a/servicetalk-http-router-jersey/gradle/spotbugs/testFixtures-exclusions.xml b/servicetalk-http-router-jersey/gradle/spotbugs/testFixtures-exclusions.xml
index 9a8321c91b..e1b5d6cb5f 100644
--- a/servicetalk-http-router-jersey/gradle/spotbugs/testFixtures-exclusions.xml
+++ b/servicetalk-http-router-jersey/gradle/spotbugs/testFixtures-exclusions.xml
@@ -26,4 +26,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-http-router-predicate/gradle/spotbugs/test-exclusions.xml b/servicetalk-http-router-predicate/gradle/spotbugs/test-exclusions.xml
index c15803210a..2993fc6e20 100644
--- a/servicetalk-http-router-predicate/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-http-router-predicate/gradle/spotbugs/test-exclusions.xml
@@ -20,6 +20,14 @@
+
+
+
+
+
+
+
+
diff --git a/servicetalk-http-security-jersey/gradle/spotbugs/test-exclusions.xml b/servicetalk-http-security-jersey/gradle/spotbugs/test-exclusions.xml
index a10553e0a3..af0f601b22 100644
--- a/servicetalk-http-security-jersey/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-http-security-jersey/gradle/spotbugs/test-exclusions.xml
@@ -20,4 +20,8 @@
+
+
+
+
diff --git a/servicetalk-http-utils/gradle/spotbugs/test-exclusions.xml b/servicetalk-http-utils/gradle/spotbugs/test-exclusions.xml
index e6ff4dd154..63083a5d63 100644
--- a/servicetalk-http-utils/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-http-utils/gradle/spotbugs/test-exclusions.xml
@@ -26,4 +26,12 @@
+
+
+
+
+
+
+
+
diff --git a/servicetalk-loadbalancer/gradle/spotbugs/test-exclusions.xml b/servicetalk-loadbalancer/gradle/spotbugs/test-exclusions.xml
index a10553e0a3..7e276c24b9 100644
--- a/servicetalk-loadbalancer/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-loadbalancer/gradle/spotbugs/test-exclusions.xml
@@ -20,4 +20,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-log4j2-mdc-utils/gradle/spotbugs/test-exclusions.xml b/servicetalk-log4j2-mdc-utils/gradle/spotbugs/test-exclusions.xml
new file mode 100644
index 0000000000..e88990d20f
--- /dev/null
+++ b/servicetalk-log4j2-mdc-utils/gradle/spotbugs/test-exclusions.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
diff --git a/servicetalk-opentracing-http/gradle/spotbugs/test-exclusions.xml b/servicetalk-opentracing-http/gradle/spotbugs/test-exclusions.xml
index ee5b9f746d..e9e343d01c 100644
--- a/servicetalk-opentracing-http/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-opentracing-http/gradle/spotbugs/test-exclusions.xml
@@ -26,4 +26,12 @@
+
+
+
+
+
+
+
+
diff --git a/servicetalk-opentracing-inmemory-api/gradle/spotbugs/main-exclusions.xml b/servicetalk-opentracing-inmemory-api/gradle/spotbugs/main-exclusions.xml
new file mode 100644
index 0000000000..0acee33f30
--- /dev/null
+++ b/servicetalk-opentracing-inmemory-api/gradle/spotbugs/main-exclusions.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-opentracing-inmemory/gradle/spotbugs/main-exclusions.xml b/servicetalk-opentracing-inmemory/gradle/spotbugs/main-exclusions.xml
new file mode 100644
index 0000000000..324f6cde08
--- /dev/null
+++ b/servicetalk-opentracing-inmemory/gradle/spotbugs/main-exclusions.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-opentracing-log4j2/gradle/spotbugs/test-exclusions.xml b/servicetalk-opentracing-log4j2/gradle/spotbugs/test-exclusions.xml
index c6e27b6320..b75808c0fa 100644
--- a/servicetalk-opentracing-log4j2/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-opentracing-log4j2/gradle/spotbugs/test-exclusions.xml
@@ -20,4 +20,8 @@
+
+
+
+
diff --git a/servicetalk-opentracing-zipkin-publisher/gradle/spotbugs/main-exclusions.xml b/servicetalk-opentracing-zipkin-publisher/gradle/spotbugs/main-exclusions.xml
index 8aa484e8a7..2c526f31be 100644
--- a/servicetalk-opentracing-zipkin-publisher/gradle/spotbugs/main-exclusions.xml
+++ b/servicetalk-opentracing-zipkin-publisher/gradle/spotbugs/main-exclusions.xml
@@ -31,4 +31,10 @@
+
+
+
+
+
+
diff --git a/servicetalk-opentracing-zipkin-publisher/gradle/spotbugs/test-exclusions.xml b/servicetalk-opentracing-zipkin-publisher/gradle/spotbugs/test-exclusions.xml
index a10553e0a3..8bd196c0d1 100644
--- a/servicetalk-opentracing-zipkin-publisher/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-opentracing-zipkin-publisher/gradle/spotbugs/test-exclusions.xml
@@ -20,4 +20,12 @@
+
+
+
+
+
+
+
+
diff --git a/servicetalk-serialization-api/gradle/spotbugs/main-exclusions.xml b/servicetalk-serialization-api/gradle/spotbugs/main-exclusions.xml
index a664a9d333..b42531fd9c 100644
--- a/servicetalk-serialization-api/gradle/spotbugs/main-exclusions.xml
+++ b/servicetalk-serialization-api/gradle/spotbugs/main-exclusions.xml
@@ -1,6 +1,6 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-tcp-netty-internal/gradle/spotbugs/main-exclusions.xml b/servicetalk-tcp-netty-internal/gradle/spotbugs/main-exclusions.xml
index 90454d89ce..a2134f331e 100644
--- a/servicetalk-tcp-netty-internal/gradle/spotbugs/main-exclusions.xml
+++ b/servicetalk-tcp-netty-internal/gradle/spotbugs/main-exclusions.xml
@@ -43,4 +43,15 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-tcp-netty-internal/gradle/spotbugs/test-exclusions.xml b/servicetalk-tcp-netty-internal/gradle/spotbugs/test-exclusions.xml
index e354904679..8b23240e08 100644
--- a/servicetalk-tcp-netty-internal/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-tcp-netty-internal/gradle/spotbugs/test-exclusions.xml
@@ -25,4 +25,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-tcp-netty-internal/gradle/spotbugs/testFixtures-exclusions.xml b/servicetalk-tcp-netty-internal/gradle/spotbugs/testFixtures-exclusions.xml
new file mode 100644
index 0000000000..bf969114ae
--- /dev/null
+++ b/servicetalk-tcp-netty-internal/gradle/spotbugs/testFixtures-exclusions.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-test-resources/gradle/spotbugs/test-exclusions.xml b/servicetalk-test-resources/gradle/spotbugs/test-exclusions.xml
new file mode 100644
index 0000000000..e88990d20f
--- /dev/null
+++ b/servicetalk-test-resources/gradle/spotbugs/test-exclusions.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
diff --git a/servicetalk-transport-api/gradle/spotbugs/main-exclusions.xml b/servicetalk-transport-api/gradle/spotbugs/main-exclusions.xml
new file mode 100644
index 0000000000..79849a65af
--- /dev/null
+++ b/servicetalk-transport-api/gradle/spotbugs/main-exclusions.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-transport-api/gradle/spotbugs/test-exclusions.xml b/servicetalk-transport-api/gradle/spotbugs/test-exclusions.xml
index a10553e0a3..af0f601b22 100644
--- a/servicetalk-transport-api/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-transport-api/gradle/spotbugs/test-exclusions.xml
@@ -20,4 +20,8 @@
+
+
+
+
diff --git a/servicetalk-transport-netty-internal/gradle/spotbugs/main-exclusions.xml b/servicetalk-transport-netty-internal/gradle/spotbugs/main-exclusions.xml
index b639b98d82..10b5cd9b5b 100644
--- a/servicetalk-transport-netty-internal/gradle/spotbugs/main-exclusions.xml
+++ b/servicetalk-transport-netty-internal/gradle/spotbugs/main-exclusions.xml
@@ -47,4 +47,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-transport-netty-internal/gradle/spotbugs/test-exclusions.xml b/servicetalk-transport-netty-internal/gradle/spotbugs/test-exclusions.xml
index f0ea3ac96c..757beb5705 100644
--- a/servicetalk-transport-netty-internal/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-transport-netty-internal/gradle/spotbugs/test-exclusions.xml
@@ -30,4 +30,12 @@
+
+
+
+
+
+
+
+
diff --git a/servicetalk-transport-netty-internal/gradle/spotbugs/testFixtures-exclusions.xml b/servicetalk-transport-netty-internal/gradle/spotbugs/testFixtures-exclusions.xml
index fa0ae5a8b1..e981cb7803 100644
--- a/servicetalk-transport-netty-internal/gradle/spotbugs/testFixtures-exclusions.xml
+++ b/servicetalk-transport-netty-internal/gradle/spotbugs/testFixtures-exclusions.xml
@@ -27,4 +27,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-utils-internal/gradle/spotbugs/main-exclusions.xml b/servicetalk-utils-internal/gradle/spotbugs/main-exclusions.xml
index 62c39d7d92..0c49c01781 100644
--- a/servicetalk-utils-internal/gradle/spotbugs/main-exclusions.xml
+++ b/servicetalk-utils-internal/gradle/spotbugs/main-exclusions.xml
@@ -21,4 +21,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/servicetalk-utils-internal/gradle/spotbugs/test-exclusions.xml b/servicetalk-utils-internal/gradle/spotbugs/test-exclusions.xml
index 76d8981054..aa1140c766 100644
--- a/servicetalk-utils-internal/gradle/spotbugs/test-exclusions.xml
+++ b/servicetalk-utils-internal/gradle/spotbugs/test-exclusions.xml
@@ -20,4 +20,8 @@
+
+
+
+