|
29 | 29 | import software.amazon.awssdk.regions.Region;
|
30 | 30 | import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient;
|
31 | 31 | import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
|
32 |
| -import software.amazon.awssdk.services.dynamodb.model.AttributeDefinition; |
33 |
| -import software.amazon.awssdk.services.dynamodb.model.GlobalSecondaryIndex; |
34 |
| -import software.amazon.awssdk.services.dynamodb.model.KeySchemaElement; |
35 |
| -import software.amazon.awssdk.services.dynamodb.model.KeyType; |
36 |
| -import software.amazon.awssdk.services.dynamodb.model.ProjectionType; |
37 |
| -import software.amazon.awssdk.services.dynamodb.model.ScalarAttributeType; |
38 |
| -import software.amazon.awssdk.services.dynamodb.model.StreamViewType; |
| 32 | +import software.amazon.awssdk.services.dynamodb.model.*; |
39 | 33 | import software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsAsyncClient;
|
40 | 34 |
|
41 | 35 | final class DynamoDbInitializer {
|
42 | 36 |
|
43 | 37 | @SuppressWarnings("unchecked")
|
44 | 38 | static void createTable(final DynamoDbClient client, final String name) throws ExecutionException, InterruptedException {
|
45 |
| - if (client.listTables().tableNames().contains(name)) { |
| 39 | + try { |
| 40 | + client.describeTable(builder -> builder.tableName(name)); |
46 | 41 | return;
|
| 42 | + } catch (ResourceNotFoundException ignored) { |
47 | 43 | }
|
| 44 | + |
48 | 45 | // looks like bug within local dynamodb client around creating multiple tables at the same time
|
49 | 46 | synchronized (DynamoDbInitializer.class) {
|
50 | 47 | client
|
@@ -98,8 +95,10 @@ static void createTable(final DynamoDbClient client, final String name) throws E
|
98 | 95 | }
|
99 | 96 |
|
100 | 97 | static void createHistoryTable(final DynamoDbClient client, final String name) throws ExecutionException, InterruptedException {
|
101 |
| - if (client.listTables().tableNames().contains(name)) { |
| 98 | + try { |
| 99 | + client.describeTable(builder -> builder.tableName(name)); |
102 | 100 | return;
|
| 101 | + } catch (ResourceNotFoundException ignored) { |
103 | 102 | }
|
104 | 103 |
|
105 | 104 | // looks like bug within local dynamodb client around creating multiple tables at the same time
|
|
0 commit comments