Hi everyone.
I'm using the Java client to handle some functionalities in my cluster.
With the ElasticsearchSlmClient, I can create a policy and run it.
But when I try to run slmClient.getStats();
I have the following error :
java.lang.RuntimeException: co.elastic.clients.transport.TransportException: node: https://my-cluster-address:9243/, status: 200, [es/slm.get_stats] Failed to decode response
at com.adelean.eaas.services.SnapshotsManagement.getStats(SnapshotsManagement.java:70)
at com.adelean.eaas.services.SnapshotsManagementTest.getStats(SnapshotsManagementTest.java:69)
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: co.elastic.clients.transport.TransportException: node: https://my-cluster-address:9243/, status: 200, [es/slm.get_stats] Failed to decode response
at co.elastic.clients.transport.ElasticsearchTransportBase.decodeTransportResponse(ElasticsearchTransportBase.java:417)
at co.elastic.clients.transport.ElasticsearchTransportBase.getApiResponse(ElasticsearchTransportBase.java:375)
at co.elastic.clients.transport.ElasticsearchTransportBase.performRequest(ElasticsearchTransportBase.java:141)
at co.elastic.clients.elasticsearch.slm.ElasticsearchSlmClient.getStats(ElasticsearchSlmClient.java:300)
at com.adelean.eaas.services.SnapshotsManagement.getStats(SnapshotsManagement.java:68)
... 4 more
Caused by: co.elastic.clients.json.JsonpMappingException: Error deserializing co.elastic.clients.elasticsearch.slm.GetStatsResponse: co.elastic.clients.json.UnexpectedJsonEventException: Unexpected JSON event 'START_OBJECT' instead of '[KEY_NAME, VALUE_STRING, VALUE_NUMBER, VALUE_TRUE, VALUE_FALSE]' (JSON path: policy_stats[0]) (line no=1, column no=276, offset=-1)
at co.elastic.clients.json.JsonpMappingException.from0(JsonpMappingException.java:134)
at co.elastic.clients.json.JsonpMappingException.from(JsonpMappingException.java:125)
at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:322)
at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:280)
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.transport.ElasticsearchTransportBase.decodeTransportResponse(ElasticsearchTransportBase.java:412)
... 8 more
Caused by: co.elastic.clients.json.UnexpectedJsonEventException: Unexpected JSON event 'START_OBJECT' instead of '[KEY_NAME, VALUE_STRING, VALUE_NUMBER, VALUE_TRUE, VALUE_FALSE]'
at co.elastic.clients.json.JsonpUtils.ensureAccepts(JsonpUtils.java:117)
at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:317)
... 18 more
Hello!
Thank you for reporting this, it's an api specification bug, so it's currently affecting all clients, Java included. We mapped policy_stats wrongly, as an array of strings while the correct type is an array of specific objects. We'll fix this asap and regenerate the client to fix the issue, if you'd like to track this effort you can open a new issue in the java client repo.
Thanks again!
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.