From af07eae78adfbf5ddaceed707835c5b818e1f86f Mon Sep 17 00:00:00 2001 From: Alex Kulikov Date: Mon, 20 Feb 2023 16:22:15 +0000 Subject: [PATCH] test errordetail Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags: Differential Revision: https://phabricator.intern.facebook.com/D43443611 --- .../google/GoogleCloudIdempotentImportExecutor.java | 4 +++- .../google/GoogleCloudIdempotentImportExecutorTest.java | 6 +++--- .../InMemoryIdempotentImportExecutor.java | 2 +- .../types/transfer/errors/ErrorDetail.java | 9 ++++++--- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/extensions/cloud/portability-cloud-google/src/main/java/org/datatransferproject/cloud/google/GoogleCloudIdempotentImportExecutor.java b/extensions/cloud/portability-cloud-google/src/main/java/org/datatransferproject/cloud/google/GoogleCloudIdempotentImportExecutor.java index 84d94182a..eae2cc970 100644 --- a/extensions/cloud/portability-cloud-google/src/main/java/org/datatransferproject/cloud/google/GoogleCloudIdempotentImportExecutor.java +++ b/extensions/cloud/portability-cloud-google/src/main/java/org/datatransferproject/cloud/google/GoogleCloudIdempotentImportExecutor.java @@ -88,7 +88,7 @@ public T executeOrThrowException( ErrorDetail.builder() .setId(idempotentId) .setTitle(itemName) - .setException(Throwables.getStackTraceAsString(e)) + .setThrowable(e) .build(); addError(idempotentId, errorDetail); monitor.severe(() -> jobIdPrefix + "Problem with importing item: " + errorDetail); @@ -232,6 +232,8 @@ private Entity createErrorEntity(String idempotentId, ErrorDetail error) throws @VisibleForTesting Entity createErrorEntity(String idempotentId, UUID jobId, ErrorDetail error) throws IOException { + System.out.println("AQAQAQAQ"); + System.out.println(objectMapper.writeValueAsString(error)); return GoogleCloudUtils.createEntityBuilder( getErrorKey(idempotentId, jobId), ImmutableMap.of( diff --git a/extensions/cloud/portability-cloud-google/src/test/java/org/datatransferproject/cloud/google/GoogleCloudIdempotentImportExecutorTest.java b/extensions/cloud/portability-cloud-google/src/test/java/org/datatransferproject/cloud/google/GoogleCloudIdempotentImportExecutorTest.java index 08769f8b8..5e6be4018 100644 --- a/extensions/cloud/portability-cloud-google/src/test/java/org/datatransferproject/cloud/google/GoogleCloudIdempotentImportExecutorTest.java +++ b/extensions/cloud/portability-cloud-google/src/test/java/org/datatransferproject/cloud/google/GoogleCloudIdempotentImportExecutorTest.java @@ -57,7 +57,7 @@ public void loadCachedValuesFromDataStore() throws Exception { assertEquals(googleExecutor.getCachedValue("id3"), "idempotentId3"); assertEquals(googleExecutor.getErrors().size(), 1); assertTrue(googleExecutor.getErrors().contains( - ErrorDetail.builder().setId("id4").setTitle("title").setException("error").build())); + ErrorDetail.builder().setId("id4").setTitle("title").setThrowable(new IOException("error")).build())); // we shouldn't load any items belonging to JOB_ID_2 assertFalse(googleExecutor.isKeyCached("id1_job2")); @@ -68,7 +68,7 @@ public void removeErrorIfItemSucceeds() throws Exception { initializeDS(); googleExecutor.setJobId(JOB_ID); assertTrue(googleExecutor.getErrors().contains( - ErrorDetail.builder().setId("id4").setTitle("title").setException("error").build())); + ErrorDetail.builder().setId("id4").setTitle("title").setThrowable(new IOException("error")).build())); // now execute a successful import of id4 googleExecutor.executeAndSwallowIOExceptions("id4", ITEM_NAME, () -> "idempotentId4"); @@ -86,7 +86,7 @@ private void initializeDS() throws IOException { t.put(googleExecutor.createResultEntity("id2", JOB_ID, "idempotentId2")); t.put(googleExecutor.createResultEntity("id3", JOB_ID, "idempotentId3")); t.put(googleExecutor.createErrorEntity("id4", JOB_ID, - ErrorDetail.builder().setId("id4").setTitle("title").setException("error").build())); + ErrorDetail.builder().setId("id4").setTitle("title").setThrowable(new IOException("error")).build())); t.put(googleExecutor.createResultEntity("id1_job2", JOB_ID_2, "idempotentId1_job2")); t.commit(); diff --git a/portability-spi-transfer/src/main/java/org/datatransferproject/spi/transfer/idempotentexecutor/InMemoryIdempotentImportExecutor.java b/portability-spi-transfer/src/main/java/org/datatransferproject/spi/transfer/idempotentexecutor/InMemoryIdempotentImportExecutor.java index b8edc1463..b6375e791 100644 --- a/portability-spi-transfer/src/main/java/org/datatransferproject/spi/transfer/idempotentexecutor/InMemoryIdempotentImportExecutor.java +++ b/portability-spi-transfer/src/main/java/org/datatransferproject/spi/transfer/idempotentexecutor/InMemoryIdempotentImportExecutor.java @@ -81,7 +81,7 @@ public T executeOrThrowException( ErrorDetail.builder() .setId(idempotentId) .setTitle(itemName) - .setException(Throwables.getStackTraceAsString(e)) + .setThrowable(e) .build(); errors.put(idempotentId, errorDetail); recentErrors.put(idempotentId, errorDetail); diff --git a/portability-types-transfer/src/main/java/org/datatransferproject/types/transfer/errors/ErrorDetail.java b/portability-types-transfer/src/main/java/org/datatransferproject/types/transfer/errors/ErrorDetail.java index 3d371ec97..e8470d9f4 100644 --- a/portability-types-transfer/src/main/java/org/datatransferproject/types/transfer/errors/ErrorDetail.java +++ b/portability-types-transfer/src/main/java/org/datatransferproject/types/transfer/errors/ErrorDetail.java @@ -46,7 +46,11 @@ public static ErrorDetail.Builder builder() { public abstract String title(); @JsonProperty("exception") - public abstract String exception(); + public String exception() { + return Throwables.getStackTraceAsString(throwable()); + } + + public abstract Throwable throwable(); @AutoValue.Builder public abstract static class Builder { @@ -63,7 +67,6 @@ private static ErrorDetail.Builder create() { @JsonProperty("title") public abstract Builder setTitle(String title); - @JsonProperty("exception") - public abstract Builder setException(String exception); + public abstract Builder setThrowable(Throwable throwable); } }