From a1d1fdf00dad0793fdf756b21dadb2cdc26e22e1 Mon Sep 17 00:00:00 2001 From: AMit-Cloudsufi Date: Tue, 28 Jan 2025 07:59:53 +0000 Subject: [PATCH] update --- .../action/BigQueryArgumentSetter.java | 10 ++++++---- .../gcp/bigquery/action/BigQueryExecute.java | 19 +++++++++++-------- .../bigquery/common/BigQueryErrorUtil.java | 2 +- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/main/java/io/cdap/plugin/gcp/bigquery/action/BigQueryArgumentSetter.java b/src/main/java/io/cdap/plugin/gcp/bigquery/action/BigQueryArgumentSetter.java index b36465625..bb7c1c7b6 100644 --- a/src/main/java/io/cdap/plugin/gcp/bigquery/action/BigQueryArgumentSetter.java +++ b/src/main/java/io/cdap/plugin/gcp/bigquery/action/BigQueryArgumentSetter.java @@ -102,7 +102,7 @@ public void run(ActionContext context) { try { queryJob.waitFor(); } catch (BigQueryException | InterruptedException e) { - String errorMessage = String.format("The query job was interrupted, %s: %s", + String errorMessage = String.format("The bigquery query job failed, %s: %s", e.getClass().getName(), e.getMessage()); if (e instanceof BigQueryException) { throw BigQueryErrorUtil.getProgramFailureException(errorMessage, @@ -115,10 +115,12 @@ public void run(ActionContext context) { // Check for errors if (queryJob.getStatus().getError() != null) { - String error = queryJob.getStatus().getExecutionErrors().toString(); + String errorReason = String.format("The bigquery job failed with reason: %s", + queryJob.getStatus().getError().getReason()); ErrorType type = BigQueryErrorUtil.getErrorType(queryJob.getStatus().getError().getReason()); - throw ErrorUtils.getProgramFailureException(new ErrorCategory(ErrorCategory.ErrorCategoryEnum.PLUGIN), - error, error, type, true, null); + throw ErrorUtils.getProgramFailureException( + new ErrorCategory(ErrorCategory.ErrorCategoryEnum.PLUGIN), errorReason, errorReason, type, + true, null); } TableResult queryResults; try { diff --git a/src/main/java/io/cdap/plugin/gcp/bigquery/action/BigQueryExecute.java b/src/main/java/io/cdap/plugin/gcp/bigquery/action/BigQueryExecute.java index 0b381f1db..56fdc4952 100644 --- a/src/main/java/io/cdap/plugin/gcp/bigquery/action/BigQueryExecute.java +++ b/src/main/java/io/cdap/plugin/gcp/bigquery/action/BigQueryExecute.java @@ -179,7 +179,7 @@ public void run(ActionContext context) { try { executeQuery(bigQuery, queryConfig, context); } catch (Exception e) { - String errorMessage = String.format("Failed to execute query, %s: %s", + String errorMessage = String.format("The bigquery query execution failed, %s: %s", e.getClass().getName(), e.getMessage()); String errorReason = null; if (e instanceof BigQueryException) { @@ -195,10 +195,10 @@ protected void executeQueryWithExponentialBackoff(BigQuery bigQuery, try { Failsafe.with(getRetryPolicy()).run(() -> executeQuery(bigQuery, queryConfig, context)); } catch (FailsafeException e) { - String errorReason = String.format("Failed to execute query with message: %s", + String errorReason = String.format("The bigquery query execution failed with message: %s", e.getMessage()); if (e.getCause() != null) { - errorReason = String.format("Failed to execute query with message: %s", + errorReason = String.format("The bigquery query execution failed with message: %s", e.getCause().getMessage()); } throw GCPErrorDetailsProviderUtil.getHttpResponseExceptionDetailsFromChain( @@ -234,8 +234,8 @@ private void executeQuery(BigQuery bigQuery, QueryJobConfiguration queryConfig, // Wait for the query to complete queryJob = queryJob.waitFor(); } catch (BigQueryException | InterruptedException e) { - String errorMessage = String.format("Failed to execute query, %s: %s", e.getClass().getName(), - e.getMessage()); + String errorMessage = String.format("The bigquery query execution failed, %s: %s", + e.getClass().getName(), e.getMessage()); if (e instanceof BigQueryException) { LOG.error("The query job {} failed. Error: {}", jobId.getJob(), ((BigQueryException) e).getError().getMessage()); @@ -255,11 +255,14 @@ private void executeQuery(BigQuery bigQuery, QueryJobConfiguration queryConfig, if (queryJob.getStatus().getError() != null) { // You can also look at queryJob.getStatus().getExecutionErrors() for all // errors, not just the latest one. - LOG.error("The query job {} failed. Error: {}", jobId.getJob(), queryJob.getStatus().getError()); + LOG.error( + String.format("The query job %s failed with error %s and reason %s.", jobId.getJob(), + queryJob.getStatus().getError().getReason(), queryJob.getStatus().getError())); if (RETRY_ON_REASON.contains(queryJob.getStatus().getError().getReason())) { throw new BigQueryJobExecutionException(queryJob.getStatus().getError().getMessage()); } - String error = String.format("Failed to execute query with reason: %s and message: %s", + String error = String.format( + "The bigquery query execution failed with reason: %s and message: %s", queryJob.getStatus().getError().getReason(), queryJob.getStatus().getError().getMessage()); ErrorType type = BigQueryErrorUtil.getErrorType(queryJob.getStatus().getError().getReason()); @@ -727,7 +730,7 @@ public void validateSQLSyntax(FailureCollector failureCollector, BigQuery bigQue errorMessage = String.format( "Resource was not found. Please verify the resource name. If the resource will be " + "created at runtime, then update to use a macro for the resource name. " - + "Error message received was %s, %s", e.getClass().getName(), e.getMessage()); + + "Error message received was %s: %s", e.getClass().getName(), e.getMessage()); } else { errorMessage = e.getMessage(); } diff --git a/src/main/java/io/cdap/plugin/gcp/bigquery/common/BigQueryErrorUtil.java b/src/main/java/io/cdap/plugin/gcp/bigquery/common/BigQueryErrorUtil.java index 7e070d28a..5f88dd60a 100644 --- a/src/main/java/io/cdap/plugin/gcp/bigquery/common/BigQueryErrorUtil.java +++ b/src/main/java/io/cdap/plugin/gcp/bigquery/common/BigQueryErrorUtil.java @@ -28,7 +28,7 @@ */ public class BigQueryErrorUtil { - //https://cloud.google.com/bigquery/docs/error-messages#errortable + // https://cloud.google.com/bigquery/docs/error-messages#errortable private static final Map ERROR_REASON_TO_ERROR_TYPE = new HashMap<>(); static {