Closed
Description
Java API client version
8.17.3
Java version
openjdk 17.0.14 2025-01-21 LTS
Elasticsearch Version
8.17.3
Problem description
I just wanted to upgrade spring-data-elasticsearch to use the Elasticsearch client 8.17.3 (coming from 8.17.2).
When running the integration tests I have failures:
org.springframework.dao.DataAccessResourceFailureException: node: http://localhost:54640/, status: 200, [es/indices.get] Failed to decode response
at org.springframework.data.elasticsearch.client.elc.ElasticsearchExceptionTranslator.translateExceptionIfPossible(ElasticsearchExceptionTranslator.java:111)
at org.springframework.data.elasticsearch.client.elc.ElasticsearchExceptionTranslator.translateException(ElasticsearchExceptionTranslator.java:65)
at org.springframework.data.elasticsearch.client.elc.ChildTemplate.execute(ChildTemplate.java:73)
at org.springframework.data.elasticsearch.client.elc.IndicesTemplate.getInformation(IndicesTemplate.java:436)
at org.springframework.data.elasticsearch.core.IndexOperations.getInformation(IndexOperations.java:414)
at org.springframework.data.elasticsearch.core.index.IndexOperationsIntegrationTests.shouldReturnInformationList(IndexOperationsIntegrationTests.java:89)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: java.lang.RuntimeException: node: http://localhost:54640/, status: 200, [es/indices.get] Failed to decode response
at org.springframework.data.elasticsearch.client.elc.ElasticsearchExceptionTranslator.translateException(ElasticsearchExceptionTranslator.java:64)
... 7 more
Caused by: co.elastic.clients.transport.TransportException: node: http://localhost:54640/, status: 200, [es/indices.get] Failed to decode response
at co.elastic.clients.transport.ElasticsearchTransportBase.decodeTransportResponse(ElasticsearchTransportBase.java:409)
at co.elastic.clients.transport.ElasticsearchTransportBase.getApiResponse(ElasticsearchTransportBase.java:367)
at co.elastic.clients.transport.ElasticsearchTransportBase.performRequest(ElasticsearchTransportBase.java:148)
at co.elastic.clients.elasticsearch.indices.ElasticsearchIndicesClient.get(ElasticsearchIndicesClient.java:1625)
at org.springframework.data.elasticsearch.client.elc.IndicesTemplate.lambda$getInformation$22(IndicesTemplate.java:436)
at org.springframework.data.elasticsearch.client.elc.ChildTemplate.execute(ChildTemplate.java:71)
... 6 more
Caused by: co.elastic.clients.json.JsonpMappingException: Error deserializing co.elastic.clients.elasticsearch.indices.MappingLimitSettingsSourceFields: Invalid enum 'STORED' (JSON path: ['integration-46-719347'].defaults.index.mapping.source.mode) (line no=1, column no=1877, offset=-1)
at co.elastic.clients.json.JsonEnums$Deserializer.deserialize(JsonEnums.java:84)
at co.elastic.clients.json.JsonEnums$Deserializer.deserialize(JsonEnums.java:70)
at co.elastic.clients.json.JsonEnum$Deserializer.deserialize(JsonEnum.java:46)
at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:77)
at co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:78)
at co.elastic.clients.json.ObjectDeserializer.deserializeInner(ObjectDeserializer.java:214)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:166)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:157)
at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:77)
at co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:79)
at co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:43)
at co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:78)
at co.elastic.clients.json.ObjectDeserializer.deserializeInner(ObjectDeserializer.java:214)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:166)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:157)
at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:77)
at co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:79)
at co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:43)
at co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:78)
at co.elastic.clients.json.ObjectDeserializer.deserializeInner(ObjectDeserializer.java:214)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:166)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:157)
at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:77)
at co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:79)
at co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:43)
at co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:78)
at co.elastic.clients.json.ObjectDeserializer.deserializeInner(ObjectDeserializer.java:214)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:166)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:157)
at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:77)
at co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:79)
at co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:43)
at co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:78)
at co.elastic.clients.json.ObjectDeserializer.deserializeInner(ObjectDeserializer.java:214)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:166)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:157)
at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:77)
at co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:79)
at co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:43)
at co.elastic.clients.json.JsonpDeserializerBase$StringMapDeserializer.deserialize(JsonpDeserializerBase.java:349)
at co.elastic.clients.json.JsonpDeserializerBase$StringMapDeserializer.deserialize(JsonpDeserializerBase.java:333)
at co.elastic.clients.elasticsearch.indices.GetIndicesSettingsResponse.lambda$createGetIndicesSettingsResponseDeserializer$0(GetIndicesSettingsResponse.java:186)
at co.elastic.clients.json.JsonpDeserializer$3.deserialize(JsonpDeserializer.java:136)
at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:77)
at co.elastic.clients.transport.ElasticsearchTransportBase.decodeTransportResponse(ElasticsearchTransportBase.java:404)
This seems to come from the change in 8.17.3 where the capitalization of the enum value was changed in the client:

Metadata
Metadata
Assignees
Labels
No labels