GetSource API throws TransportException
dadoonet opened this issue · 1 comments
dadoonet commented
Java API client version
8.12.1
Java version
21
Elasticsearch Version
8.12.1
Problem description
Reported at https://discuss.elastic.co/t/example-usage-of-getsourcerequest/351923/
This code fails:
String INDEX = "source-request";
try {
client.indices().delete(dir -> dir.index(INDEX));
} catch (ElasticsearchException ignored) { }
client.index(ir -> ir.index(INDEX).id("1").withJson(new StringReader("{\"foo\":\"bar\"}")));
client.indices().refresh(rr -> rr.index(INDEX));
client.getSource(gsr -> gsr.index(INDEX).id("1"), ObjectNode.class);
It gives:
co.elastic.clients.transport.TransportException: node: https://localhost:53642/, status: 200, [es/get_source] Failed to decode response
at co.elastic.clients.transport.ElasticsearchTransportBase.decodeTransportResponse(ElasticsearchTransportBase.java:404)
at co.elastic.clients.transport.ElasticsearchTransportBase.getApiResponse(ElasticsearchTransportBase.java:363)
at co.elastic.clients.transport.ElasticsearchTransportBase.performRequest(ElasticsearchTransportBase.java:147)
at co.elastic.clients.elasticsearch.ElasticsearchClient.getSource(ElasticsearchClient.java:1015)
at co.elastic.clients.elasticsearch.ElasticsearchClient.getSource(ElasticsearchClient.java:1032)
at fr.pilato.test.elasticsearch.hlclient.EsClientIT.sourceRequest(EsClientIT.java:625)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
Caused by: java.lang.UnsupportedOperationException
at co.elastic.clients.json.JsonpDeserializer$1.deserialize(JsonpDeserializer.java:113)
at co.elastic.clients.json.NamedDeserializer.deserialize(NamedDeserializer.java:73)
at co.elastic.clients.elasticsearch.core.GetSourceResponse.lambda$createGetSourceResponseDeserializer$0(GetSourceResponse.java:165)
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.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:43)
at co.elastic.clients.transport.endpoints.EndpointWithResponseMapperAttr$1.deserialize(EndpointWithResponseMapperAttr.java:56)
at co.elastic.clients.transport.ElasticsearchTransportBase.decodeTransportResponse(ElasticsearchTransportBase.java:399)
... 8 more
l-trotta commented
Thanks for the report! Seems to be a bug, we'll investigate this.