Skip to content

Commit b278bf9

Browse files
authored
DATAES-809 - Creation of test data may lead to duplicate values.
Original PR: spring-projects#443
1 parent 15f51c5 commit b278bf9

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ElasticsearchRestTemplateConfiguration.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,13 @@
2121
import org.springframework.beans.factory.annotation.Autowired;
2222
import org.springframework.context.annotation.Bean;
2323
import org.springframework.context.annotation.Configuration;
24+
import org.springframework.dao.DataAccessResourceFailureException;
2425
import org.springframework.data.elasticsearch.client.ClientConfiguration;
2526
import org.springframework.data.elasticsearch.client.RestClients;
2627
import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration;
28+
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
29+
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
30+
import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter;
2731

2832
/**
2933
* Configuration for Spring Data Elasticsearch using
@@ -56,4 +60,22 @@ public RestHighLevelClient elasticsearchClient() {
5660
.build()) //
5761
.rest();
5862
}
63+
64+
@Override
65+
public ElasticsearchOperations elasticsearchOperations(ElasticsearchConverter elasticsearchConverter) {
66+
RestHighLevelClient client = elasticsearchClient();
67+
return new ElasticsearchRestTemplate(client, elasticsearchConverter) {
68+
@Override
69+
public <T> T execute(ClientCallback<T> callback) {
70+
try {
71+
return super.execute(callback);
72+
} catch (DataAccessResourceFailureException e) {
73+
try {
74+
Thread.sleep(1_000);
75+
} catch (InterruptedException ignored) {}
76+
return super.execute(callback);
77+
}
78+
}
79+
};
80+
}
5981
}

src/test/java/org/springframework/data/elasticsearch/repository/support/simple/SimpleElasticsearchRepositoryTests.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -678,14 +678,18 @@ public void shouldNotFailOnIndexingEmptyList() {
678678
}
679679

680680
private static List<SampleEntity> createSampleEntitiesWithMessage(String message, int numberOfEntities) {
681+
681682
List<SampleEntity> sampleEntities = new ArrayList<>();
683+
long idBase = (long) (Math.random() * 100);
684+
long versionBase = System.currentTimeMillis();
685+
682686
for (int i = 0; i < numberOfEntities; i++) {
683-
String documentId = randomNumeric(5);
687+
String documentId = String.valueOf(idBase + i);
684688
SampleEntity sampleEntity = new SampleEntity();
685689
sampleEntity.setId(documentId);
686690
sampleEntity.setMessage(message);
687691
sampleEntity.setRate(2);
688-
sampleEntity.setVersion(System.currentTimeMillis());
692+
sampleEntity.setVersion(versionBase + i);
689693
sampleEntities.add(sampleEntity);
690694
}
691695
return sampleEntities;

0 commit comments

Comments
 (0)