Skip to content
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

use elasticsearch java client query api with docvalueFields and storedField, and response is error!! #700

Closed
Mrruigege opened this issue Nov 3, 2023 · 6 comments
Labels
Category: Bug Something isn't working

Comments

@Mrruigege
Copy link

Elasticsearch Version

8.0.0

Installed Plugins

No response

Java Version

8.9.1

OS Version

ubuntu

Problem Description

i want to use es query with docvalue_fields and stored_fields. in kibana,it's ok. but when i use use elasticsearch java client to query, it response error! the error is:

java.lang.NullPointerException
at org.eclipse.parsson.JsonGeneratorImpl.writeEscapedString(JsonGeneratorImpl.java:539)
at org.eclipse.parsson.JsonGeneratorImpl.write(JsonGeneratorImpl.java:359)
at co.elastic.clients.elasticsearch.core.search.Hit.serializeInternal(Hit.java:303)
at co.elastic.clients.elasticsearch.core.search.Hit.serialize(Hit.java:293)
at co.elastic.clients.elasticsearch.core.search.HitsMetadata.serializeInternal(HitsMetadata.java:130)
at co.elastic.clients.elasticsearch.core.search.HitsMetadata.serialize(HitsMetadata.java:115)
at co.elastic.clients.elasticsearch.core.search.ResponseBody.serializeInternal(ResponseBody.java:248)
at co.elastic.clients.elasticsearch.core.search.ResponseBody.serialize(ResponseBody.java:232)
at co.elastic.clients.json.JsonpUtils.toString(JsonpUtils.java:408)
at co.elastic.clients.json.JsonpUtils.toString(JsonpUtils.java:345)
at co.elastic.clients.elasticsearch.core.search.ResponseBody.toString(ResponseBody.java:311)
at java.base/java.lang.String.valueOf(String.java:2951)
at java.base/java.io.PrintStream.println(PrintStream.java:897)
at com.example.demoproject.ElasticsearchTest.test(ElasticsearchTest.java:53)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
Suppressed: jakarta.json.stream.JsonGenerationException: Generating incomplete JSON
at org.eclipse.parsson.JsonGeneratorImpl.close(JsonGeneratorImpl.java:519)
at co.elastic.clients.json.JsonpUtils.toString(JsonpUtils.java:407)
... 74 more

Steps to Reproduce

1、create index and add data

PUT device_info
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 2
}
, "mappings": {
"properties": {
"city": {
"type": "keyword"
}
}
}
}

PUT device_info/_bulk
{"index": {"_id": "1"}}
{"city": "chengdu"}
{"index": {"_id": "2"}}
{"city": "chengdu"}

2、use kibana query (return no error)

GET device_info/_search
{
"stored_fields": ["none"],
"docvalue_fields": ["city"],
"query": {
"term": {
"city": {
"value": "chengdu"
}
}
}
}

3、use elasticsearch java client to query

@test
public void test() throws IOException {
ApiTypeHelper.DANGEROUS_disableRequiredPropertiesCheck(true);
SearchResponse response = elasticsearchClient.search(s -> s
.index("device_info")
.query(q -> q
.term(t -> t
.field("city")
.value("chengdu")))
.docvalueFields(d -> d
.field("city"))
.storedFields("none"), Void.class);
System.out.println(response);
ApiTypeHelper.DANGEROUS_disableRequiredPropertiesCheck(false);
}

error info :
java.lang.NullPointerException
at org.eclipse.parsson.JsonGeneratorImpl.writeEscapedString(JsonGeneratorImpl.java:539)
at org.eclipse.parsson.JsonGeneratorImpl.write(JsonGeneratorImpl.java:359)
at co.elastic.clients.elasticsearch.core.search.Hit.serializeInternal(Hit.java:303)
at co.elastic.clients.elasticsearch.core.search.Hit.serialize(Hit.java:293)
at co.elastic.clients.elasticsearch.core.search.HitsMetadata.serializeInternal(HitsMetadata.java:130)
at co.elastic.clients.elasticsearch.core.search.HitsMetadata.serialize(HitsMetadata.java:115)
at co.elastic.clients.elasticsearch.core.search.ResponseBody.serializeInternal(ResponseBody.java:248)
at co.elastic.clients.elasticsearch.core.search.ResponseBody.serialize(ResponseBody.java:232)
at co.elastic.clients.json.JsonpUtils.toString(JsonpUtils.java:408)
at co.elastic.clients.json.JsonpUtils.toString(JsonpUtils.java:345)
at co.elastic.clients.elasticsearch.core.search.ResponseBody.toString(ResponseBody.java:311)
at java.base/java.lang.String.valueOf(String.java:2951)
at java.base/java.io.PrintStream.println(PrintStream.java:897)
at com.example.demoproject.ElasticsearchTest.test(ElasticsearchTest.java:53)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
Suppressed: jakarta.json.stream.JsonGenerationException: Generating incomplete JSON
at org.eclipse.parsson.JsonGeneratorImpl.close(JsonGeneratorImpl.java:519)
at co.elastic.clients.json.JsonpUtils.toString(JsonpUtils.java:407)
... 74 more

Logs (if relevant)

No response

@Mrruigege Mrruigege added Category: Bug Something isn't working needs:triage labels Nov 3, 2023
@Mrruigege
Copy link
Author

Hit.class i think the '_id' should null judgment

@mark-vieira
Copy link
Contributor

@swallez should these issues be moved to the https://github.com/elastic/elasticsearch-java repo?

@elasticsearchmachine
Copy link

Pinging @elastic/clients-team (Team:Clients)

@swallez
Copy link
Member

swallez commented Nov 6, 2023

@mark-vieira yes, definitely. Feel free to move issues about co.elastic.clients without asking 😉

@swallez swallez transferred this issue from elastic/elasticsearch Nov 6, 2023
@l-trotta
Copy link
Contributor

Also see #680

@l-trotta
Copy link
Contributor

fixed in the code generator, will be part of the next release!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Category: Bug Something isn't working
Projects
None yet
Development

No branches or pull requests

6 participants