From e8620a3906ba88a3906fc41bb5780ef1ab2c998f Mon Sep 17 00:00:00 2001 From: Martin Derka <derka@google.com> Date: Tue, 1 Mar 2016 11:57:36 -0800 Subject: [PATCH] Added retryable errors. --- .../com/google/gcloud/dns/DnsException.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gcloud-java-dns/src/main/java/com/google/gcloud/dns/DnsException.java b/gcloud-java-dns/src/main/java/com/google/gcloud/dns/DnsException.java index 2092d5909d37..b68118973124 100644 --- a/gcloud-java-dns/src/main/java/com/google/gcloud/dns/DnsException.java +++ b/gcloud-java-dns/src/main/java/com/google/gcloud/dns/DnsException.java @@ -16,27 +16,41 @@ package com.google.gcloud.dns; +import com.google.common.collect.ImmutableSet; import com.google.gcloud.BaseServiceException; import com.google.gcloud.RetryHelper.RetryHelperException; import com.google.gcloud.RetryHelper.RetryInterruptedException; import java.io.IOException; +import java.util.Set; /** * DNS service exception. */ public class DnsException extends BaseServiceException { + // see: https://cloud.google.com/dns/troubleshooting + private static final Set<Error> RETRYABLE_ERRORS = ImmutableSet.of( + new Error(404, null), + new Error(409, null), + new Error(500, null), + new Error(502, null), + new Error(503, null)); private static final long serialVersionUID = 490302380416260252L; public DnsException(IOException exception) { super(exception, true); } - public DnsException(int code, String message) { + private DnsException(int code, String message) { super(code, message, null, true); } + @Override + protected Set<Error> retryableErrors() { + return RETRYABLE_ERRORS; + } + /** * Translate RetryHelperException to the DnsException that caused the error. This method will * always throw an exception. @@ -48,6 +62,4 @@ static DnsException translateAndThrow(RetryHelperException ex) { BaseServiceException.translateAndPropagateIfPossible(ex); throw new DnsException(UNKNOWN_CODE, ex.getMessage()); } - - //TODO(mderka) Add translation and retry functionality. Created issue #593. }