Skip to content

Commit 132cd21

Browse files
fix
1 parent 32d7f54 commit 132cd21

File tree

4 files changed

+22
-17
lines changed

4 files changed

+22
-17
lines changed

NEXT_CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,6 @@
1010
### Documentation
1111

1212
### Internal Changes
13+
* Capture DatabricksError when retrying API calls ([#427](https://github.com/databricks/databricks-sdk-java/pull/427)).
1314

1415
### API Changes

databricks-sdk-java/src/main/java/com/databricks/sdk/core/ApiClient.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,14 @@
1515
import com.fasterxml.jackson.core.JsonProcessingException;
1616
import com.fasterxml.jackson.databind.JavaType;
1717
import com.fasterxml.jackson.databind.ObjectMapper;
18+
import com.google.common.base.Strings;
1819
import java.io.IOException;
1920
import java.io.InputStream;
2021
import java.lang.reflect.Field;
2122
import java.time.ZonedDateTime;
2223
import java.time.format.DateTimeFormatter;
2324
import java.util.*;
2425
import java.util.function.Function;
25-
26-
import com.google.common.base.Strings;
2726
import org.slf4j.Logger;
2827
import org.slf4j.LoggerFactory;
2928

@@ -254,7 +253,8 @@ private Response executeInner(Request in, String path) {
254253

255254
// Retry after a backoff.
256255
long sleepMillis = getBackoffMillis(out, attemptNumber);
257-
LOG.debug(String.format("Retry %s in %dms", in.getRequestLine(), sleepMillis), databricksError);
256+
LOG.debug(
257+
String.format("Retry %s in %dms", in.getRequestLine(), sleepMillis), databricksError);
258258
try {
259259
timer.sleep(sleepMillis);
260260
} catch (InterruptedException ex) {

databricks-sdk-java/src/main/java/com/databricks/sdk/core/DatabricksConfig.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -374,13 +374,17 @@ public DatabricksConfig setAzureUseMsi(boolean azureUseMsi) {
374374
return this;
375375
}
376376

377-
/** @deprecated Use {@link #getAzureUseMsi()} instead. */
377+
/**
378+
* @deprecated Use {@link #getAzureUseMsi()} instead.
379+
*/
378380
@Deprecated()
379381
public boolean getAzureUseMSI() {
380382
return azureUseMsi;
381383
}
382384

383-
/** @deprecated Use {@link #setAzureUseMsi(boolean)} instead. */
385+
/**
386+
* @deprecated Use {@link #setAzureUseMsi(boolean)} instead.
387+
*/
384388
@Deprecated
385389
public DatabricksConfig setAzureUseMSI(boolean azureUseMsi) {
386390
this.azureUseMsi = azureUseMsi;

databricks-sdk-java/src/test/java/com/databricks/sdk/core/ApiClientTest.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,13 @@
1111
import com.fasterxml.jackson.annotation.JsonProperty;
1212
import com.fasterxml.jackson.core.JsonProcessingException;
1313
import com.fasterxml.jackson.databind.ObjectMapper;
14+
import com.google.errorprone.annotations.CanIgnoreReturnValue;
1415
import java.io.IOException;
1516
import java.net.MalformedURLException;
1617
import java.net.URL;
1718
import java.net.UnknownHostException;
1819
import java.time.*;
1920
import java.util.*;
20-
21-
import com.google.errorprone.annotations.CanIgnoreReturnValue;
2221
import org.apache.http.impl.EnglishReasonPhraseCatalog;
2322
import org.junit.jupiter.api.Test;
2423

@@ -220,16 +219,17 @@ void retry429() throws IOException {
220219
@Test
221220
void failAfterTooManyRetries() throws IOException {
222221
Request req = getBasicRequest();
223-
DatabricksException exception = runFailingApiClientTest(
224-
req,
225-
Arrays.asList(
226-
getTooManyRequestsResponseWithRetryAfterDateHeader(req),
227-
getTooManyRequestsResponse(req),
228-
getTooManyRequestsResponse(req),
229-
getTooManyRequestsResponse(req),
230-
getSuccessResponse(req)),
231-
MyEndpointResponse.class,
232-
"Request GET /api/my/endpoint failed after 4 retries");
222+
DatabricksException exception =
223+
runFailingApiClientTest(
224+
req,
225+
Arrays.asList(
226+
getTooManyRequestsResponseWithRetryAfterDateHeader(req),
227+
getTooManyRequestsResponse(req),
228+
getTooManyRequestsResponse(req),
229+
getTooManyRequestsResponse(req),
230+
getSuccessResponse(req)),
231+
MyEndpointResponse.class,
232+
"Request GET /api/my/endpoint failed after 4 retries");
233233
assertInstanceOf(DatabricksError.class, exception.getCause());
234234
DatabricksError cause = (DatabricksError) exception.getCause();
235235
assertEquals(cause.getErrorCode(), "TOO_MANY_REQUESTS");

0 commit comments

Comments
 (0)