|
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;
|
47 |
| - } |
| 42 | + } catch (ResourceNotFoundException ignored) {} |
| 43 | + |
48 | 44 | // looks like bug within local dynamodb client around creating multiple tables at the same time
|
49 | 45 | synchronized (DynamoDbInitializer.class) {
|
50 | 46 | client
|
@@ -98,9 +94,10 @@ static void createTable(final DynamoDbClient client, final String name) throws E
|
98 | 94 | }
|
99 | 95 |
|
100 | 96 | static void createHistoryTable(final DynamoDbClient client, final String name) throws ExecutionException, InterruptedException {
|
101 |
| - if (client.listTables().tableNames().contains(name)) { |
| 97 | + try { |
| 98 | + client.describeTable(builder -> builder.tableName(name)); |
102 | 99 | return;
|
103 |
| - } |
| 100 | + } catch (ResourceNotFoundException ignored) {} |
104 | 101 |
|
105 | 102 | // looks like bug within local dynamodb client around creating multiple tables at the same time
|
106 | 103 | synchronized (DynamoDbInitializer.class) {
|
|
0 commit comments