-
Notifications
You must be signed in to change notification settings - Fork 269
Closed
Labels
Area: SpecificationRelated to the API spec used to generate client codeRelated to the API spec used to generate client code
Description
Java API client version
8.7.0
Java version
17
Elasticsearch Version
8.5.2
Problem description
Given following pipeline definition:
{
"description": "test",
"processors": [
{
"remove": {
"keep": ["properties", "firstName", "lastName"],
"description": "Remove the fields other than expected (please also see index-definition)"
}
}
]
}
We do:
<dataFile>.getInputStream().bufferedReader().use { bufferedReader ->
val objectMapper = jacksonObjectMapper()
val dataTransformationDefinition = objectMapper.readValue<Map<String, Any>>(bufferedReader)
val processorList = dataTransformationDefinition["processors"] as List<*>
val processors = processorList
.map { processor -> objectMapper.writeValueAsString(processor) }
.map { processorJson ->
Processor.Builder().withJson(processorJson.byteInputStream()).build()
}
// create ingest pipeline via Elasticsearch client and PutPipelineRequest
}
But this fails with:
Original Stack Trace:
at co.elastic.clients.json.ObjectDeserializer.parseUnknownField(ObjectDeserializer.java:233)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:190)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:148)
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.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:78)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:192)
at co.elastic.clients.util.WithJsonObjectBuilderBase.withJson(WithJsonObjectBuilderBase.java:54)
at co.elastic.clients.json.WithJson.withJson(WithJson.java:43)
The reason is that the keep
field is not present in RemoveProcessor deserializer
Line 181 in 9188e9b
protected static void setupRemoveProcessorDeserializer(ObjectDeserializer<RemoveProcessor.Builder> op) { |
Metadata
Metadata
Assignees
Labels
Area: SpecificationRelated to the API spec used to generate client codeRelated to the API spec used to generate client code