Skip to content

Commit e51fe6e

Browse files
author
Jerjou Cheng
committed
Add some checks to debug test flakiness..
1 parent 0f1a308 commit e51fe6e

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java

+17-3
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.google.cloud.spanner.DatabaseAdminClient;
2525
import com.google.cloud.spanner.DatabaseClient;
2626
import com.google.cloud.spanner.DatabaseId;
27+
import com.google.cloud.spanner.DatabaseInfo;
2728
// [START transaction_import]
2829
import com.google.cloud.spanner.Key;
2930
// [END transaction_import]
@@ -57,6 +58,8 @@
5758
// [END write_import]
5859
import java.util.Arrays;
5960
import java.util.List;
61+
import com.google.cloud.WaitForOption;
62+
import java.util.concurrent.TimeUnit;
6063

6164
/**
6265
* Example code for using the Cloud Spanner API. This example demonstrates all the common
@@ -132,8 +135,15 @@ static void createDatabase(DatabaseAdminClient dbAdminClient, DatabaseId id) {
132135
+ " AlbumTitle STRING(MAX)\n"
133136
+ ") PRIMARY KEY (SingerId, AlbumId),\n"
134137
+ " INTERLEAVE IN PARENT Singers ON DELETE CASCADE"));
135-
Database db = op.waitFor().getResult();
136-
System.out.println("Created database [" + db.getId() + "]");
138+
op = op.waitFor(WaitForOption.timeout(2, TimeUnit.MINUTES));
139+
Database db = op.getResult();
140+
if (op.isSuccessful() && db.getState() == DatabaseInfo.State.READY) {
141+
System.out.println("Created database [" + db.getId() + "]");
142+
} else {
143+
throw new RuntimeException(String.format(
144+
"Error creating database: {successful: %b, state: %s}",
145+
op.isSuccessful(), db.getState()));
146+
}
137147
}
138148

139149
// [START write]
@@ -198,10 +208,14 @@ static void read(DatabaseClient dbClient) {
198208

199209
// [START add_marketing_budget]
200210
static void addMarketingBudget(DatabaseAdminClient adminClient, DatabaseId dbId) {
201-
adminClient.updateDatabaseDdl(dbId.getInstanceId().getInstance(),
211+
Operation op = adminClient.updateDatabaseDdl(
212+
dbId.getInstanceId().getInstance(),
202213
dbId.getDatabase(),
203214
Arrays.asList("ALTER TABLE Albums ADD COLUMN MarketingBudget INT64"),
204215
null).waitFor();
216+
if (!op.isSuccessful()) {
217+
throw new RuntimeException("ALTER TABLE operation unsuccessful");
218+
}
205219
System.out.println("Added MarketingBudget column");
206220
}
207221
// [END add_marketing_budget]

0 commit comments

Comments
 (0)