diff --git a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ElasticsearchRestTemplateConfiguration.java b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ElasticsearchRestTemplateConfiguration.java index d7085b24a..a3369cef3 100644 --- a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ElasticsearchRestTemplateConfiguration.java +++ b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ElasticsearchRestTemplateConfiguration.java @@ -21,9 +21,13 @@ import org.elasticsearch.client.RestHighLevelClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.dao.DataAccessResourceFailureException; import org.springframework.data.elasticsearch.client.ClientConfiguration; import org.springframework.data.elasticsearch.client.RestClients; import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration; +import org.springframework.data.elasticsearch.core.ElasticsearchOperations; +import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; +import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter; /** * Configuration for Spring Data Elasticsearch using @@ -56,4 +60,22 @@ public class ElasticsearchRestTemplateConfiguration extends AbstractElasticsearc .build()) // .rest(); } + + @Override + public ElasticsearchOperations elasticsearchOperations(ElasticsearchConverter elasticsearchConverter) { + RestHighLevelClient client = elasticsearchClient(); + return new ElasticsearchRestTemplate(client, elasticsearchConverter) { + @Override + public T execute(ClientCallback callback) { + try { + return super.execute(callback); + } catch (DataAccessResourceFailureException e) { + try { + Thread.sleep(1_000); + } catch (InterruptedException ignored) {} + return super.execute(callback); + } + } + }; + } } diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/support/simple/SimpleElasticsearchRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repository/support/simple/SimpleElasticsearchRepositoryTests.java index e8d6e6cfe..284fa8f66 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repository/support/simple/SimpleElasticsearchRepositoryTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repository/support/simple/SimpleElasticsearchRepositoryTests.java @@ -678,14 +678,18 @@ public class SimpleElasticsearchRepositoryTests { } private static List createSampleEntitiesWithMessage(String message, int numberOfEntities) { + List sampleEntities = new ArrayList<>(); + long idBase = (long) (Math.random() * 100); + long versionBase = System.currentTimeMillis(); + for (int i = 0; i < numberOfEntities; i++) { - String documentId = randomNumeric(5); + String documentId = String.valueOf(idBase + i); SampleEntity sampleEntity = new SampleEntity(); sampleEntity.setId(documentId); sampleEntity.setMessage(message); sampleEntity.setRate(2); - sampleEntity.setVersion(System.currentTimeMillis()); + sampleEntity.setVersion(versionBase + i); sampleEntities.add(sampleEntity); } return sampleEntities;