From 0e9a5c8054f8ae9b2bc4c41f32790fb52fd73944 Mon Sep 17 00:00:00 2001 From: Jake Wharton Date: Sat, 30 Mar 2019 09:52:09 -0400 Subject: [PATCH] Make error-prone validate missing override annotations --- build.gradle | 7 +++++++ .../logging/LoggingEventListenerTest.java | 2 +- .../test/java/okhttp3/DelegatingSSLSocket.java | 14 ++++++++++++-- .../src/test/java/okhttp3/URLConnectionTest.java | 16 ++++++++-------- .../java/okhttp3/UrlComponentEncodingTester.java | 4 ++-- 5 files changed, 30 insertions(+), 13 deletions(-) diff --git a/build.gradle b/build.gradle index 0cf820128..c1bcceb26 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,5 @@ +import net.ltgt.gradle.errorprone.CheckSeverity + buildscript { ext.versions = [ 'airline': '0.8', @@ -127,6 +129,11 @@ subprojects { project -> errorproneJavac 'com.google.errorprone:javac:9+181-r4173-1' errorprone 'com.google.errorprone:error_prone_core:2.3.3' } + tasks.withType(JavaCompile).configureEach { + options.errorprone { + check("MissingOverride", CheckSeverity.ERROR) + } + } apply plugin: 'org.jetbrains.dokka' dokka { diff --git a/okhttp-logging-interceptor/src/test/java/okhttp3/logging/LoggingEventListenerTest.java b/okhttp-logging-interceptor/src/test/java/okhttp3/logging/LoggingEventListenerTest.java index a1d301542..9a61c457b 100644 --- a/okhttp-logging-interceptor/src/test/java/okhttp3/logging/LoggingEventListenerTest.java +++ b/okhttp-logging-interceptor/src/test/java/okhttp3/logging/LoggingEventListenerTest.java @@ -220,7 +220,7 @@ public final class LoggingEventListenerTest { } private static class LogRecorder extends HttpLoggingInterceptorTest.LogRecorder { - LogRecorder assertLogMatch(String pattern) { + @Override LogRecorder assertLogMatch(String pattern) { return (LogRecorder) super.assertLogMatch("\\[\\d+ ms] " + pattern); } } diff --git a/okhttp/src/test/java/okhttp3/DelegatingSSLSocket.java b/okhttp/src/test/java/okhttp3/DelegatingSSLSocket.java index e6c931b6a..6647dfc4d 100644 --- a/okhttp/src/test/java/okhttp3/DelegatingSSLSocket.java +++ b/okhttp/src/test/java/okhttp3/DelegatingSSLSocket.java @@ -287,6 +287,7 @@ public abstract class DelegatingSSLSocket extends SSLSocket { // Java 9 methods. + @SuppressWarnings("MissingOverride") // Can only override with JDK 9+ public SSLSession getHandshakeSession() { try { return (SSLSession) SSLSocket.class.getMethod("getHandshakeSession").invoke(delegate); @@ -295,6 +296,7 @@ public abstract class DelegatingSSLSocket extends SSLSocket { } } + @SuppressWarnings("MissingOverride") // Can only override with JDK 9+ public String getApplicationProtocol() { try { return (String) SSLSocket.class.getMethod("getApplicationProtocol").invoke(delegate); @@ -303,6 +305,7 @@ public abstract class DelegatingSSLSocket extends SSLSocket { } } + @SuppressWarnings("MissingOverride") // Can only override with JDK 9+ public String getHandshakeApplicationProtocol() { try { return (String) SSLSocket.class.getMethod("getHandshakeApplicationProtocol").invoke(delegate); @@ -311,6 +314,7 @@ public abstract class DelegatingSSLSocket extends SSLSocket { } } + @SuppressWarnings("MissingOverride") // Can only override with JDK 9+ public Socket setOption(SocketOption name, T value) throws IOException { try { SSLSocket.class.getMethod("setOption", SocketOption.class, Object.class).invoke(delegate, name, value); @@ -320,7 +324,10 @@ public abstract class DelegatingSSLSocket extends SSLSocket { } } - @SuppressWarnings("unchecked") // Using reflection to delegate. + @SuppressWarnings({ + "MissingOverride", // Can only override with JDK 9+ + "unchecked" // Using reflection to delegate. + }) public T getOption(SocketOption name) throws IOException { try { return (T) SSLSocket.class.getMethod("getOption", SocketOption.class).invoke(delegate, name); @@ -329,7 +336,10 @@ public abstract class DelegatingSSLSocket extends SSLSocket { } } - @SuppressWarnings("unchecked") // Using reflection to delegate. + @SuppressWarnings({ + "MissingOverride", // Can only override with JDK 9+ + "unchecked" // Using reflection to delegate. + }) public Set> supportedOptions() { try { return (Set>) SSLSocket.class.getMethod("supportedOptions").invoke(delegate); diff --git a/okhttp/src/test/java/okhttp3/URLConnectionTest.java b/okhttp/src/test/java/okhttp3/URLConnectionTest.java index cc5c4c0ee..813853d1a 100644 --- a/okhttp/src/test/java/okhttp3/URLConnectionTest.java +++ b/okhttp/src/test/java/okhttp3/URLConnectionTest.java @@ -746,24 +746,24 @@ public final class URLConnectionTest { private void testConnectViaSocketFactory(boolean useHttps) throws IOException { SocketFactory uselessSocketFactory = new SocketFactory() { - public Socket createSocket() { + @Override public Socket createSocket() { throw new IllegalArgumentException("useless"); } - public Socket createSocket(InetAddress host, int port) { + @Override public Socket createSocket(InetAddress host, int port) { return null; } - public Socket createSocket(InetAddress address, int port, InetAddress localAddress, + @Override public Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort) { return null; } - public Socket createSocket(String host, int port) { + @Override public Socket createSocket(String host, int port) { return null; } - public Socket createSocket(String host, int port, InetAddress localHost, int localPort) { + @Override public Socket createSocket(String host, int port, InetAddress localHost, int localPort) { return null; } }; @@ -3807,15 +3807,15 @@ public final class URLConnectionTest { this.delegate = delegate; } - public X509Certificate[] getAcceptedIssuers() { + @Override public X509Certificate[] getAcceptedIssuers() { return delegate.getAcceptedIssuers(); } - public void checkClientTrusted(X509Certificate[] chain, String authType) { + @Override public void checkClientTrusted(X509Certificate[] chain, String authType) { calls.add("checkClientTrusted " + certificatesToString(chain)); } - public void checkServerTrusted(X509Certificate[] chain, String authType) { + @Override public void checkServerTrusted(X509Certificate[] chain, String authType) { calls.add("checkServerTrusted " + certificatesToString(chain)); } diff --git a/okhttp/src/test/java/okhttp3/UrlComponentEncodingTester.java b/okhttp/src/test/java/okhttp3/UrlComponentEncodingTester.java index 5875bc397..bc2f054fc 100644 --- a/okhttp/src/test/java/okhttp3/UrlComponentEncodingTester.java +++ b/okhttp/src/test/java/okhttp3/UrlComponentEncodingTester.java @@ -306,13 +306,13 @@ class UrlComponentEncodingTester { public enum Encoding { IDENTITY { - public String encode(int codePoint) { + @Override public String encode(int codePoint) { return new String(new int[] {codePoint}, 0, 1); } }, PERCENT { - public String encode(int codePoint) { + @Override public String encode(int codePoint) { ByteString utf8 = ByteString.encodeUtf8(IDENTITY.encode(codePoint)); Buffer percentEncoded = new Buffer(); for (int i = 0; i < utf8.size(); i++) {