Skip to content

Commit

Permalink
Issue #108: Opened constructor and fixed NPE (#115)
Browse files Browse the repository at this point in the history
Issue #108: Opened constructor and fixed NPE

In some use cases it is required to pass in all three parameters into
`DynamoDBTemplate` - therefore made the internal constructor public (that
was used by all other constructors anyway)

Also passing in a combination of `null`/non-`null` parameters could lead
to NPEs down the road - ie. by calling `getOverrideTableName`.
The constructor now initalizes all fields with non-`null` objects and does
not relay on AWS constructors to pick some proper default configs.
  • Loading branch information
derjust committed Feb 15, 2018
1 parent 5d245e7 commit 7ac455b
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.util.Assert;

import java.util.List;
import java.util.Map;

public class DynamoDBTemplate implements DynamoDBOperations, ApplicationContextAware {

private final DynamoDBMapper dynamoDBMapper;
Expand All @@ -44,7 +47,6 @@ public DynamoDBTemplate(AmazonDynamoDB amazonDynamoDB, DynamoDBMapperConfig dyna
}

/** Convenient constructor to use the {@link DynamoDBMapperConfig#DEFAULT} */

public DynamoDBTemplate(AmazonDynamoDB amazonDynamoDB, DynamoDBMapper dynamoDBMapper)
{
this(amazonDynamoDB, null, dynamoDBMapper);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig.TableNameResolver;
import com.amazonaws.services.dynamodbv2.document.DynamoDB;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Rule;
Expand Down Expand Up @@ -61,7 +63,7 @@ public void testConstructorOptionalAllNull() {
}

@Test
public void testPreconfiguredDynamoDBMapper() {
public void testConstructorOptionalPreconfiguredDynamoDBMapper() {
// Introduced constructor via #91 should not fail its assert
DynamoDBTemplate usePreconfiguredDynamoDBMapper = new DynamoDBTemplate(dynamoDB, dynamoDBMapper);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
package org.socialsignin.spring.data.dynamodb.mapping.event;

import com.amazonaws.services.dynamodbv2.document.Expected;
import net.bytebuddy.pool.TypePool;
import org.hamcrest.core.CombinableMatcher;
import org.hamcrest.core.StringContains;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
Expand All @@ -20,11 +16,9 @@
import java.util.Set;
import javax.validation.Path;
import javax.validation.Validator;
import javax.validation.metadata.ConstraintDescriptor;

import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ExecutionException;

import static org.hamcrest.CoreMatchers.allOf;
import static org.hamcrest.CoreMatchers.containsString;
Expand Down

0 comments on commit 7ac455b

Please sign in to comment.