Skip to content

Commit cc6415e

Browse files
authored
Make SSLHandShakeException retryable (#1938)
1 parent 0c2a6cd commit cc6415e

1 file changed

Lines changed: 4 additions & 0 deletions

File tree

google-cloud-core/src/main/java/com/google/cloud/BaseServiceException.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,11 @@
2626
import java.io.Serializable;
2727
import java.net.SocketException;
2828
import java.net.SocketTimeoutException;
29+
import java.security.cert.CertificateException;
2930
import java.util.Collections;
3031
import java.util.Objects;
3132
import java.util.Set;
33+
import javax.net.ssl.SSLHandshakeException;
3234

3335
/**
3436
* Base class for all service exceptions.
@@ -203,6 +205,8 @@ protected boolean isRetryable(boolean idempotent, Error error) {
203205
protected boolean isRetryable(boolean idempotent, IOException exception) {
204206
boolean exceptionIsRetryable = exception instanceof SocketTimeoutException
205207
|| exception instanceof SocketException
208+
|| (exception instanceof SSLHandshakeException
209+
&& !(exception.getCause() instanceof CertificateException))
206210
|| "insufficient data written".equals(exception.getMessage());
207211
return idempotent && exceptionIsRetryable;
208212
}

0 commit comments

Comments
 (0)