3737public class SpannerErrorDetailsProvider extends GCPErrorDetailsProvider {
3838 private static final String ERROR_MESSAGE_FORMAT = "Error occurred in the phase: '%s'. Error message: %s" ;
3939
40- static Map <ErrorCode , ErrorUtils . ActionErrorPair > actionErrorMap = new HashMap <>();
40+ static Map <ErrorCode , Integer > actionErrorMap = new HashMap <>();
4141
4242 static {
43- actionErrorMap .put (ErrorCode .CANCELLED , ErrorUtils . getActionErrorByStatusCode ( 499 ) );
44- actionErrorMap .put (ErrorCode .UNKNOWN , ErrorUtils . getActionErrorByStatusCode ( 500 ) );
45- actionErrorMap .put (ErrorCode .INVALID_ARGUMENT , ErrorUtils . getActionErrorByStatusCode ( 400 ) );
46- actionErrorMap .put (ErrorCode .DEADLINE_EXCEEDED , ErrorUtils . getActionErrorByStatusCode ( 504 ) );
47- actionErrorMap .put (ErrorCode .NOT_FOUND , ErrorUtils . getActionErrorByStatusCode ( 404 ) );
48- actionErrorMap .put (ErrorCode .ALREADY_EXISTS , ErrorUtils . getActionErrorByStatusCode ( 409 ) );
49- actionErrorMap .put (ErrorCode .PERMISSION_DENIED , ErrorUtils . getActionErrorByStatusCode ( 403 ) );
50- actionErrorMap .put (ErrorCode .UNAUTHENTICATED , ErrorUtils . getActionErrorByStatusCode ( 401 ) );
51- actionErrorMap .put (ErrorCode .RESOURCE_EXHAUSTED , ErrorUtils . getActionErrorByStatusCode ( 429 ) );
52- actionErrorMap .put (ErrorCode .FAILED_PRECONDITION , ErrorUtils . getActionErrorByStatusCode ( 400 ) );
53- actionErrorMap .put (ErrorCode .ABORTED , ErrorUtils . getActionErrorByStatusCode ( 409 ) );
54- actionErrorMap .put (ErrorCode .OUT_OF_RANGE , ErrorUtils . getActionErrorByStatusCode ( 400 ) );
55- actionErrorMap .put (ErrorCode .UNIMPLEMENTED , ErrorUtils . getActionErrorByStatusCode ( 501 ) );
56- actionErrorMap .put (ErrorCode .INTERNAL , ErrorUtils . getActionErrorByStatusCode ( 500 ) );
57- actionErrorMap .put (ErrorCode .UNAVAILABLE , ErrorUtils . getActionErrorByStatusCode ( 503 ) );
58- actionErrorMap .put (ErrorCode .DATA_LOSS , ErrorUtils . getActionErrorByStatusCode ( 500 ) );
43+ actionErrorMap .put (ErrorCode .CANCELLED , 499 );
44+ actionErrorMap .put (ErrorCode .UNKNOWN , 500 );
45+ actionErrorMap .put (ErrorCode .INVALID_ARGUMENT , 400 );
46+ actionErrorMap .put (ErrorCode .DEADLINE_EXCEEDED , 504 );
47+ actionErrorMap .put (ErrorCode .NOT_FOUND , 404 );
48+ actionErrorMap .put (ErrorCode .ALREADY_EXISTS , 409 );
49+ actionErrorMap .put (ErrorCode .PERMISSION_DENIED , 403 );
50+ actionErrorMap .put (ErrorCode .UNAUTHENTICATED , 401 );
51+ actionErrorMap .put (ErrorCode .RESOURCE_EXHAUSTED , 429 );
52+ actionErrorMap .put (ErrorCode .FAILED_PRECONDITION , 400 );
53+ actionErrorMap .put (ErrorCode .ABORTED , 409 );
54+ actionErrorMap .put (ErrorCode .OUT_OF_RANGE , 400 );
55+ actionErrorMap .put (ErrorCode .UNIMPLEMENTED , 501 );
56+ actionErrorMap .put (ErrorCode .INTERNAL , 500 );
57+ actionErrorMap .put (ErrorCode .UNAVAILABLE , 503 );
58+ actionErrorMap .put (ErrorCode .DATA_LOSS , 500 );
5959 }
6060
6161 @ Override
@@ -79,23 +79,23 @@ public ProgramFailureException getExceptionDetails(Exception e, ErrorContext err
7979 }
8080
8181 private ProgramFailureException getProgramFailureExceptionFromSpannerException (SpannerException se ) {
82- String errorCodeName = se .getErrorCode (). name ( );
82+ int httpStatusCode = actionErrorMap . get ( se .getErrorCode ());
8383 ErrorUtils .ActionErrorPair actionErrorPair = null ;
8484 String errorReason = se .getReason ();
8585 String errorMessage = se .getMessage ();
8686 if (actionErrorMap .containsKey (se .getErrorCode ())) {
87- actionErrorPair = actionErrorMap . get ( se . getErrorCode () );
88- errorReason = String .format ("%s %s. %s" , errorCodeName , errorMessage , actionErrorPair .getCorrectiveAction ());
87+ actionErrorPair = ErrorUtils . getActionErrorByStatusCode ( httpStatusCode );
88+ errorReason = String .format ("%s %s. %s" , httpStatusCode , errorMessage , actionErrorPair .getCorrectiveAction ());
8989 }
9090 if (!errorReason .endsWith ("." )) {
9191 errorReason = errorReason + "." ;
9292 }
9393 errorReason = String .format ("%s For more details, see %s." , errorReason , GCPUtils .SPANNER_SUPPORTED_DOC_URL );
9494
95- String errorMessageWithCode = String .format ("[ErrorCode='%s'] %s" , errorCodeName , errorMessage );
95+ String errorMessageWithCode = String .format ("[ErrorCode='%s'] %s" , httpStatusCode , errorMessage );
9696 return ErrorUtils .getProgramFailureException (new ErrorCategory (ErrorCategory .ErrorCategoryEnum .PLUGIN ),
97- errorReason , String .format ("%s: %s" , se .getClass ().getName (), errorMessageWithCode ),
98- actionErrorPair != null ? actionErrorPair .getErrorType () : ErrorType .UNKNOWN , true , ErrorCodeType .HTTP ,
99- errorCodeName , GCPUtils .SPANNER_SUPPORTED_DOC_URL , se );
97+ errorReason , String .format ("%s: %s" , se .getClass ().getName (), errorMessageWithCode ),
98+ actionErrorPair != null ? actionErrorPair .getErrorType () : ErrorType .UNKNOWN , true , ErrorCodeType .HTTP ,
99+ String . valueOf ( httpStatusCode ) , GCPUtils .SPANNER_SUPPORTED_DOC_URL , se );
100100 }
101101}
0 commit comments