From 8deaef670285a39f95e3798ca0db66ca7988c4e9 Mon Sep 17 00:00:00 2001 From: Amir Livneh Date: Sun, 21 Apr 2019 08:30:39 -0400 Subject: [PATCH] Fix race condition in RecordingHostnameVerifier When connections are established concurrently, verify() sometimes throws a `java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 0` because of unsynchronized access to the `calls` list. --- .../src/main/java/okhttp3/RecordingHostnameVerifier.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/okhttp-testing-support/src/main/java/okhttp3/RecordingHostnameVerifier.java b/okhttp-testing-support/src/main/java/okhttp3/RecordingHostnameVerifier.java index 0b883ee02..7bae3ccac 100644 --- a/okhttp-testing-support/src/main/java/okhttp3/RecordingHostnameVerifier.java +++ b/okhttp-testing-support/src/main/java/okhttp3/RecordingHostnameVerifier.java @@ -24,7 +24,7 @@ public final class RecordingHostnameVerifier implements HostnameVerifier { public final List calls = new ArrayList<>(); @Override - public boolean verify(String hostname, SSLSession session) { + public synchronized boolean verify(String hostname, SSLSession session) { calls.add("verify " + hostname); return true; }