Skip to content

GetComponentTemplate throws MissingRequiredPropertyException #282

Closed
@raynigon

Description

@raynigon

Java API client version

8.2.0

Java version

17.0.2

Elasticsearch Version

8.2.0

Problem description

Prerequisites

Create a component template in the Elasticsearch cluster with the name "my-component-template".

client.cluster().putComponentTemplate {
            it.name("my-component-template")
            it.version(0L)
            it.template { tmpl ->
                tmpl.settings { settings ->
                    settings.lifecycle { lifecycle ->
                        lifecycle.name("my-ilm-policy")
                    }
                }
            }
            it
        }

Execution

Execute the following snippet with an Elasticsearch Client connected to the cluster.

GetComponentTemplateResponse rsp = client.cluster().getComponentTemplate { it.name("my-component-template") }

Expected Result

The variable rsp contains the information about "my-component-template".

Current Result

The Execution failes with an Exception:

Error deserializing co.elastic.clients.elasticsearch.cluster.ComponentTemplateNode: co.elastic.clients.util.MissingRequiredPropertyException: Missing required property 'ComponentTemplateSummary.settings' (JSON path: component_templates[0].component_template.template) (line no=1, column no=2026, offset=-1)
co.elastic.clients.json.JsonpMappingException: Error deserializing co.elastic.clients.elasticsearch.cluster.ComponentTemplateNode: co.elastic.clients.util.MissingRequiredPropertyException: Missing required property 'ComponentTemplateSummary.settings' (JSON path: component_templates[0].component_template.template) (line no=1, column no=2026, offset=-1)
	at app//co.elastic.clients.json.JsonpMappingException.from0(JsonpMappingException.java:134)
	at app//co.elastic.clients.json.JsonpMappingException.from(JsonpMappingException.java:121)
	at app//co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:206)
	at app//co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:136)
	at app//co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:75)
	at app//co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:79)
	at app//co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:43)
	at app//co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:71)
	at app//co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:180)
	at app//co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:136)
	at app//co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:85)
	at app//co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:48)
	at app//co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:316)
	at app//co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:280)
	at app//co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:75)
	at app//co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:71)
	at app//co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:180)
	at app//co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:136)
	at app//co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:75)
	at app//co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:79)
	at app//co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:43)
	at app//co.elastic.clients.transport.rest_client.RestClientTransport.decodeResponse(RestClientTransport.java:328)
	at app//co.elastic.clients.transport.rest_client.RestClientTransport.getHighLevelResponse(RestClientTransport.java:294)
	at app//co.elastic.clients.transport.rest_client.RestClientTransport.performRequest(RestClientTransport.java:147)
	at app//co.elastic.clients.elasticsearch.cluster.ElasticsearchClusterClient.getComponentTemplate(ElasticsearchClusterClient.java:239)
	at app//co.elastic.clients.elasticsearch.cluster.ElasticsearchClusterClient.getComponentTemplate(ElasticsearchClusterClient.java:256)
        ... 1 more
Caused by: co.elastic.clients.util.MissingRequiredPropertyException: Missing required property 'ComponentTemplateSummary.settings'
	at app//co.elastic.clients.util.ApiTypeHelper.requireNonNull(ApiTypeHelper.java:76)
	at app//co.elastic.clients.util.ApiTypeHelper.unmodifiableRequired(ApiTypeHelper.java:194)
	at app//co.elastic.clients.elasticsearch.cluster.ComponentTemplateSummary.<init>(ComponentTemplateSummary.java:75)
	at app//co.elastic.clients.elasticsearch.cluster.ComponentTemplateSummary.<init>(ComponentTemplateSummary.java:56)
	at app//co.elastic.clients.elasticsearch.cluster.ComponentTemplateSummary$Builder.build(ComponentTemplateSummary.java:317)
	at app//co.elastic.clients.elasticsearch.cluster.ComponentTemplateSummary$Builder.build(ComponentTemplateSummary.java:185)
	at app//co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:80)
	at app//co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:43)
	at app//co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:71)
	at app//co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:180)
	... 24 more

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area: SpecificationRelated to the API spec used to generate client code

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions