elasticsearch-java icon indicating copy to clipboard operation
elasticsearch-java copied to clipboard

DeleteByQuery cannot be used

Open fs-chris opened this issue 2 years ago • 0 comments

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)

fs-chris avatar Sep 29 '22 08:09 fs-chris