This commit is contained in:
Avram Lyon 2016-07-14 18:31:22 +00:00 committed by GitHub
commit 52eb1f8253
2 changed files with 17 additions and 1 deletions

2
.gitignore vendored
View file

@ -1,2 +1,4 @@
*.iml
.idea/
target/ target/
AwsCredentials.properties AwsCredentials.properties

View file

@ -99,11 +99,25 @@ public class LeaseManager<T extends Lease> implements ILeaseManager<T> {
*/ */
@Override @Override
public boolean createLeaseTableIfNotExists(Long readCapacity, Long writeCapacity) public boolean createLeaseTableIfNotExists(Long readCapacity, Long writeCapacity)
throws ProvisionedThroughputException, DependencyException { throws ProvisionedThroughputException, DependencyException {
verifyNotNull(readCapacity, "readCapacity cannot be null"); verifyNotNull(readCapacity, "readCapacity cannot be null");
verifyNotNull(writeCapacity, "writeCapacity cannot be null"); verifyNotNull(writeCapacity, "writeCapacity cannot be null");
boolean tableDidNotExist = true; boolean tableDidNotExist = true;
// First, attempt to describe the table and short-circuit if it already existed
try {
dynamoDBClient.describeTable(table);
return false;
} catch (ResourceNotFoundException e) {
tableDidNotExist = true;
} catch (AmazonClientException e) {
// In order to insulate ourselves from failures specific to DescribeTable, we swallow this exception;
// we can still rely on CreateTable request failing if present.
LOG.error("Failed to retrieve table description for table " + table, e);
}
// We believe the table does not exist, so we proceed to creating it
CreateTableRequest request = new CreateTableRequest(); CreateTableRequest request = new CreateTableRequest();
request.setTableName(table); request.setTableName(table);
request.setKeySchema(serializer.getKeySchema()); request.setKeySchema(serializer.getKeySchema());