Skip to content

GetComponentTemplate throws MissingRequiredPropertyException #282

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
raynigon opened this issue May 6, 2022 · 0 comments · Fixed by #384
Closed

GetComponentTemplate throws MissingRequiredPropertyException #282

raynigon opened this issue May 6, 2022 · 0 comments · Fixed by #384
Labels
Area: Specification Related to the API spec used to generate client code

Comments

@raynigon
Copy link

raynigon commented May 6, 2022

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Specification Related to the API spec used to generate client code
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants