| 
75 | 75 | import com.google.cloud.spanner.encryption.CustomerManagedEncryption;  | 
76 | 76 | import com.google.cloud.spanner.v1.stub.SpannerStubSettings;  | 
77 | 77 | import com.google.common.base.Function;  | 
 | 78 | +import com.google.common.base.Joiner;  | 
78 | 79 | import com.google.common.base.Preconditions;  | 
79 | 80 | import com.google.common.collect.Lists;  | 
80 | 81 | import com.google.common.util.concurrent.ThreadFactoryBuilder;  | 
@@ -191,6 +192,16 @@ public CloudClientExecutor(boolean enableGrpcFaultInjector) {  | 
191 | 192 |  this.enableGrpcFaultInjector = enableGrpcFaultInjector;  | 
192 | 193 |  }  | 
193 | 194 | 
 
  | 
 | 195 | + // Helper for unexpected results.  | 
 | 196 | + public static String unexpectedExceptionResponse(Exception e) {  | 
 | 197 | + return "Unexpected error in Github Cloud Java Client Executor: "  | 
 | 198 | + + e  | 
 | 199 | + + " Msg: "  | 
 | 200 | + + e.getMessage()  | 
 | 201 | + + " Stack: "  | 
 | 202 | + + Joiner.on("\n").join(e.getStackTrace());  | 
 | 203 | + }  | 
 | 204 | + | 
194 | 205 |  /**  | 
195 | 206 |  * Implementation of a ReadWriteTransaction, which is a wrapper of the cloud TransactionRunner. It  | 
196 | 207 |  * stores all the status and related variables from the start to finish, and control the running  | 
@@ -1083,7 +1094,7 @@ private Status executeCreateCloudInstance(  | 
1083 | 1094 |  return sender.finishWithError(  | 
1084 | 1095 |  toStatus(  | 
1085 | 1096 |  SpannerExceptionFactory.newSpannerException(  | 
1086 |  | - ErrorCode.INVALID_ARGUMENT, "Unexpected error: " + e.getMessage())));  | 
 | 1097 | + ErrorCode.INVALID_ARGUMENT, CloudClientExecutor.unexpectedExceptionResponse(e))));  | 
1087 | 1098 |  }  | 
1088 | 1099 |  return sender.finishWithOK();  | 
1089 | 1100 |  }  | 
 | 
0 commit comments