elasticsearch-java
elasticsearch-java copied to clipboard
DeleteByQuery cannot be used
Java API client version
8.4.2
Java version
17
Elasticsearch Version
8.4.2
Problem description
Delete-by-query cannot be used because result cannot be parsed. Fails with
co.elastic.clients.util.MissingRequiredPropertyException: Missing required property 'DeleteByQueryResponse.throttledMillis'
at co.elastic.clients.util.ApiTypeHelper.requireNonNull(ApiTypeHelper.java:76)
at co.elastic.clients.elasticsearch.core.DeleteByQueryResponse.<init>(DeleteByQueryResponse.java:118)
at co.elastic.clients.elasticsearch.core.DeleteByQueryResponse.<init>(DeleteByQueryResponse.java:59)
at co.elastic.clients.elasticsearch.core.DeleteByQueryResponse$Builder.build(DeleteByQueryResponse.java:598)
at co.elastic.clients.elasticsearch.core.DeleteByQueryResponse$Builder.build(DeleteByQueryResponse.java:364)
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.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.ElasticsearchClient.deleteByQuery(ElasticsearchClient.java:568)
Property throttledUntilMillis
in the same object is apparently also affected.
Please note that even the workaround switch ApiTypeHelper.DANGEROUS_disableRequiredPropertiesCheck(true)
does not help here, since the field is defined as primitive long
.
Using it results in
java.lang.NullPointerException: Cannot invoke "java.lang.Long.longValue()" because the return value of "co.elastic.clients.util.ApiTypeHelper.requireNonNull(Object, Object, String)" is null
at co.elastic.clients.elasticsearch.core.DeleteByQueryResponse.<init>(DeleteByQueryResponse.java:118)
at co.elastic.clients.elasticsearch.core.DeleteByQueryResponse.<init>(DeleteByQueryResponse.java:59)
at co.elastic.clients.elasticsearch.core.DeleteByQueryResponse$Builder.build(DeleteByQueryResponse.java:598)
at co.elastic.clients.elasticsearch.core.DeleteByQueryResponse$Builder.build(DeleteByQueryResponse.java:364)
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.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.ElasticsearchClient.deleteByQuery(ElasticsearchClient.java:568)