How to get details from _nodes api with java client?

Hello,

I am trying to get details from _nodes api using Elasticsearch java client 7.17.3.
Following code block throws an exception. Is there anyone have an idea about what is wrong here?

Thanks,

NodesInfoRequest.Builder nodesInfoRequest = new NodesInfoRequest.Builder();
NodesInfoResponse nodesInfoResponse = esClient.nodes().info(nodesInfoRequest.build());
co.elastic.clients.json.JsonpMappingException: Error deserializing co.elastic.clients.elasticsearch.nodes.info.NodeInfoSettings: co.elastic.clients.util.MissingRequiredPropertyException: Missing required property 'NodeInfoPath.repo' (JSON path: nodes.xqnmmoxXQhK_3KLqXq_9aw.settings.path) (line no=1, column no=911, offset=-1)
        at co.elastic.clients.json.JsonpMappingException.from0(JsonpMappingException.java:134)
        at co.elastic.clients.json.JsonpMappingException.from(JsonpMappingException.java:121)
        at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:206)
        at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:136)
        at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:75)
        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:71)
        at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:180)
        at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:136)
        at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:75)
        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:347)
        at co.elastic.clients.json.JsonpDeserializerBase$StringMapDeserializer.deserialize(JsonpDeserializerBase.java:331)
        at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:75)
        at co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:71)
        at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:180)
        at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:136)
        at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:75)
        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.rest_client.RestClientTransport.decodeResponse(RestClientTransport.java:328)
        at co.elastic.clients.transport.rest_client.RestClientTransport.getHighLevelResponse(RestClientTransport.java:294)
        at co.elastic.clients.transport.rest_client.RestClientTransport.performRequest(RestClientTransport.java:147)
        at co.elastic.clients.elasticsearch.nodes.ElasticsearchNodesClient.info(ElasticsearchNodesClient.java:190)
        at App4.main(App4.java:44)
Caused by: co.elastic.clients.util.MissingRequiredPropertyException: Missing required property 'NodeInfoPath.repo'
        at co.elastic.clients.util.ApiTypeHelper.requireNonNull(ApiTypeHelper.java:76)
        at co.elastic.clients.util.ApiTypeHelper.unmodifiableRequired(ApiTypeHelper.java:141)
        at co.elastic.clients.elasticsearch.nodes.info.NodeInfoPath.<init>(NodeInfoPath.java:65)
        at co.elastic.clients.elasticsearch.nodes.info.NodeInfoPath.<init>(NodeInfoPath.java:50)
        at co.elastic.clients.elasticsearch.nodes.info.NodeInfoPath$Builder.build(NodeInfoPath.java:228)
        at co.elastic.clients.elasticsearch.nodes.info.NodeInfoPath$Builder.build(NodeInfoPath.java:148)
        at co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:80)
        at co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:43)
        at co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:71)
        at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:180)
        ... 24 more

This is a bug, and I opened `NodeInfoPath.repo` should be optional · Issue #305 · elastic/elasticsearch-java · GitHub so that we can fix it. Please subscribe to that issue to be updated when it's resolved.

In the meantime, you can use the the workaround described at MissingRequiredPropertyException in a response | Elasticsearch Java API Client [8.2] | Elastic

Thanks having reported this issue!

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.