Closed
Description
openedon Sep 22, 2022
Java API client version
7.17.6
Java version
1.8.0_345
Elasticsearch Version
7.17.6
Problem description
A bulk request with an update operation set to do scripted upsert where the script chooses to set ctx.op = 'none'
currently fails with co.elastic.clients.util.MissingRequiredPropertyException: Missing required property 'InlineGet.source'
. The same request works fine with the deprecated RestHighLevelClient
.
BulkResponse response = client.bulk(
BulkRequest.of(bulkRequest -> bulkRequest
.index("test-index")
.operations(bulkOperation -> bulkOperation
.update(updateOperation -> updateOperation
.id(String.valueOf(1234))
.action(action -> action
.scriptedUpsert(true)
.upsert(ImmutableMap.of())
.script(script -> script
.inline(inlineScript -> inlineScript
.lang("painless")
.source("ctx.op = 'none';")
)
)
)
)
)
)
);
Error deserializing co.elastic.clients.elasticsearch.core.bulk.BulkResponseItem: co.elastic.clients.util.MissingRequiredPropertyException: Missing required property 'InlineGet.source' (JSON path: items[0].get) (line no=1, column no=229, offset=-1)
co.elastic.clients.json.JsonpMappingException: Error deserializing co.elastic.clients.elasticsearch.core.bulk.BulkResponseItem: co.elastic.clients.util.MissingRequiredPropertyException: Missing required property 'InlineGet.source' (JSON path: items[0].get) (line no=1, column no=229, 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.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:85)
at co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:48)
at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:316)
at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:280)
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.ElasticsearchClient.bulk(ElasticsearchClient.java:310)
at test.FailureTest.example(FailureTest.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
...
Caused by: co.elastic.clients.util.MissingRequiredPropertyException: Missing required property 'InlineGet.source'
at co.elastic.clients.util.ApiTypeHelper.requireNonNull(ApiTypeHelper.java:76)
at co.elastic.clients.elasticsearch._types.InlineGet.<init>(InlineGet.java:90)
at co.elastic.clients.elasticsearch._types.InlineGet.<init>(InlineGet.java:58)
at co.elastic.clients.elasticsearch._types.InlineGet$Builder.build(InlineGet.java:342)
at co.elastic.clients.elasticsearch._types.InlineGet$Builder.build(InlineGet.java:214)
at co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:80)
at co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:71)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:180)
... 75 more
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment