-
Notifications
You must be signed in to change notification settings - Fork 275
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.2.0
Java version
17.0.3
Elasticsearch Version
8.2.0
Problem description
when using this code to get index information:
ElasticsearchClient client = createClient();
String index = "testindex";
var indicesClient = client.indices();
indicesClient.create(ci -> ci.index(index));
GetIndexResponse getIndexResponse = indicesClient.get(gi -> gi.index(index).includeDefaults(true));
the client fails to parse the returned response with:
co.elastic.clients.json.JsonpMappingException: Error deserializing co.elastic.clients.elasticsearch.indices.IndexSettings: co.elastic.clients.util.MissingRequiredPropertyException: Missing required property 'IndexVersioning.created' (JSON path: testindex.defaults.index.version) (line no=129, column no=10, 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.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.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.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.json.JsonpDeserializerBase$StringMapDeserializer.deserialize(JsonpDeserializerBase.java:347)
at co.elastic.clients.json.JsonpDeserializerBase$StringMapDeserializer.deserialize(JsonpDeserializerBase.java:331)
at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:75)
at co.elastic.clients.elasticsearch.indices.GetIndexResponse.lambda$createGetIndexResponseDeserializer$0(GetIndexResponse.java:175)
at co.elastic.clients.json.JsonpDeserializer$2.deserialize(JsonpDeserializer.java:112)
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.indices.ElasticsearchIndicesClient.get(ElasticsearchIndicesClient.java:849)
at co.elastic.clients.elasticsearch.indices.ElasticsearchIndicesClient.get(ElasticsearchIndicesClient.java:865)
at org.springframework.data.elasticsearch.client.elc.DevTests.someTest(DevTests.java:91)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:71)
at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
Caused by: co.elastic.clients.util.MissingRequiredPropertyException: Missing required property 'IndexVersioning.created'
at co.elastic.clients.util.ApiTypeHelper.requireNonNull(ApiTypeHelper.java:76)
at co.elastic.clients.elasticsearch.indices.IndexVersioning.<init>(IndexVersioning.java:59)
at co.elastic.clients.elasticsearch.indices.IndexVersioning.<init>(IndexVersioning.java:49)
at co.elastic.clients.elasticsearch.indices.IndexVersioning$Builder.build(IndexVersioning.java:147)
at co.elastic.clients.elasticsearch.indices.IndexVersioning$Builder.build(IndexVersioning.java:111)
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.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:71)
at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:180)
... 96 more
I intercepted the request/response with a proxy, this is what I see:
request:
GET http://thranduil.local.:9200/testindex?include_defaults=true&pretty=true HTTP/1.1
Accept: application/vnd.elasticsearch+json; compatible-with=8
Authorization: Basic ******
X-Elastic-Client-Meta: es=8.2.0,jv=17,t=8.2.0,hc=4.1.4
Content-Length: 0
Host: thranduil.local.:9200
Proxy-Connection: Keep-Alive
User-Agent: elasticsearch-java/8.2.0 (Java/17.0.3)
response headers:
HTTP/1.1 200 OK
X-elastic-product: Elasticsearch
content-type: application/vnd.elasticsearch+json;compatible-with=8
content-length: 7680
response body:
{
"testindex" : {
"aliases" : { },
"mappings" : { },
"settings" : {
"index" : {
"routing" : {
"allocation" : {
"include" : {
"_tier_preference" : "data_content"
}
}
},
"number_of_shards" : "1",
"provided_name" : "testindex",
"creation_date" : "1652642931904",
"number_of_replicas" : "1",
"uuid" : "PJif0JkcTa6uCnPIRPHgFg",
"version" : {
"created" : "8020099"
}
}
},
"defaults" : {
"index" : {
"flush_after_merge" : "512mb",
"final_pipeline" : "_none",
"max_inner_result_window" : "100",
"unassigned" : {
"node_left" : {
"delayed_timeout" : "1m"
}
},
"max_terms_count" : "65536",
"rollup" : {
"source" : {
"name" : "",
"uuid" : ""
}
},
"lifecycle" : {
"name" : "",
"parse_origination_date" : "false",
"step" : {
"wait_time_threshold" : "12h"
},
"indexing_complete" : "false",
"rollover_alias" : "",
"origination_date" : "-1"
},
"routing_partition_size" : "1",
"max_docvalue_fields_search" : "100",
"merge" : {
"scheduler" : {
"max_thread_count" : "3",
"auto_throttle" : "true",
"max_merge_count" : "8"
},
"policy" : {
"floor_segment" : "2mb",
"max_merge_at_once_explicit" : "30",
"max_merge_at_once" : "10",
"max_merged_segment" : "5gb",
"expunge_deletes_allowed" : "10.0",
"segments_per_tier" : "10.0",
"deletes_pct_allowed" : "33.0"
}
},
"max_refresh_listeners" : "1000",
"max_regex_length" : "1000",
"load_fixed_bitset_filters_eagerly" : "true",
"number_of_routing_shards" : "1",
"write" : {
"wait_for_active_shards" : "1"
},
"verified_before_close" : "false",
"mapping" : {
"coerce" : "false",
"nested_fields" : {
"limit" : "50"
},
"depth" : {
"limit" : "20"
},
"field_name_length" : {
"limit" : "9223372036854775807"
},
"total_fields" : {
"limit" : "1000"
},
"nested_objects" : {
"limit" : "10000"
},
"ignore_malformed" : "false",
"dimension_fields" : {
"limit" : "16"
}
},
"source_only" : "false",
"soft_deletes" : {
"enabled" : "true",
"retention" : {
"operations" : "0"
},
"retention_lease" : {
"period" : "12h"
}
},
"max_script_fields" : "32",
"query" : {
"default_field" : [
"*"
],
"parse" : {
"allow_unmapped_fields" : "true"
}
},
"format" : "0",
"frozen" : "false",
"sort" : {
"missing" : [ ],
"mode" : [ ],
"field" : [ ],
"order" : [ ]
},
"priority" : "1",
"version" : {
"compatibility" : "8020099"
},
"codec" : "default",
"max_rescore_window" : "10000",
"analyze" : {
"max_token_count" : "10000"
},
"gc_deletes" : "60s",
"top_metrics_max_size" : "10",
"max_ngram_diff" : "1",
"hidden" : "false",
"translog" : {
"generation_threshold_size" : "64mb",
"flush_threshold_size" : "512mb",
"sync_interval" : "5s",
"retention" : {
"size" : "-1",
"age" : "-1"
},
"durability" : "REQUEST"
},
"auto_expand_replicas" : "false",
"recovery" : {
"type" : ""
},
"requests" : {
"cache" : {
"enable" : "true"
}
},
"data_path" : "",
"highlight" : {
"max_analyzed_offset" : "1000000"
},
"routing" : {
"rebalance" : {
"enable" : "all"
},
"allocation" : {
"disk" : {
"watermark" : {
"ignore" : "false"
}
},
"enable" : "all",
"total_shards_per_node" : "-1"
}
},
"search" : {
"slowlog" : {
"threshold" : {
"fetch" : {
"warn" : "-1",
"trace" : "-1",
"debug" : "-1",
"info" : "-1"
},
"query" : {
"warn" : "-1",
"trace" : "-1",
"debug" : "-1",
"info" : "-1"
}
}
},
"idle" : {
"after" : "30s"
},
"throttled" : "false"
},
"fielddata" : {
"cache" : "node"
},
"default_pipeline" : "_none",
"max_slices_per_scroll" : "1024",
"shard" : {
"check_on_startup" : "false"
},
"xpack" : {
"watcher" : {
"template" : {
"version" : ""
}
},
"version" : "",
"ccr" : {
"following_index" : "false"
}
},
"percolator" : {
"map_unmapped_fields_as_text" : "false"
},
"allocation" : {
"max_retries" : "5",
"existing_shards_allocator" : "gateway_allocator"
},
"refresh_interval" : "1s",
"indexing" : {
"slowlog" : {
"reformat" : "true",
"threshold" : {
"index" : {
"warn" : "-1",
"trace" : "-1",
"debug" : "-1",
"info" : "-1"
}
},
"source" : "1000"
}
},
"compound_format" : "0.1",
"blocks" : {
"metadata" : "false",
"read" : "false",
"read_only_allow_delete" : "false",
"read_only" : "false",
"write" : "false"
},
"max_result_window" : "10000",
"store" : {
"stats_refresh_interval" : "10s",
"type" : "",
"fs" : {
"fs_lock" : "native"
},
"preload" : [ ],
"snapshot" : {
"snapshot_name" : "",
"index_uuid" : "",
"cache" : {
"prewarm" : {
"enabled" : "true"
},
"enabled" : "true",
"excluded_file_types" : [ ]
},
"repository_uuid" : "",
"uncached_chunk_size" : "-1b",
"delete_searchable_snapshot" : "false",
"index_name" : "",
"partial" : "false",
"blob_cache" : {
"metadata_files" : {
"max_length" : "64kb"
}
},
"repository_name" : "",
"snapshot_uuid" : ""
}
},
"queries" : {
"cache" : {
"enabled" : "true"
}
},
"shard_limit" : {
"group" : "normal"
},
"warmer" : {
"enabled" : "true"
},
"max_shingle_diff" : "3",
"query_string" : {
"lenient" : "false"
}
}
}
}
}
Metadata
Metadata
Assignees
Labels
Area: SpecificationRelated to the API spec used to generate client codeRelated to the API spec used to generate client code