Skip to content

Commit f34246b

Browse files
Optimize XContentParserUtils.ensureExpectedToken (#62691)
We only ever use this with `XContentParser` no need to make it inline worse by forcing the lambda and hence dynamic callsite here. => Extraced the exception formatting code path that is likely very cold to a separate method and removed the lambda usage in hot loops by simplifying the signature here.
1 parent 0858c2e commit f34246b

File tree

103 files changed

+272
-272
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

103 files changed

+272
-272
lines changed

client/rest-high-level/src/main/java/org/elasticsearch/client/GetAliasesResponse.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public static GetAliasesResponse fromXContent(XContentParser parser) throws IOEx
128128
if (parser.currentToken() == null) {
129129
parser.nextToken();
130130
}
131-
ensureExpectedToken(Token.START_OBJECT, parser.currentToken(), parser::getTokenLocation);
131+
ensureExpectedToken(Token.START_OBJECT, parser.currentToken(), parser);
132132
Map<String, Set<AliasMetadata>> aliases = new HashMap<>();
133133

134134
String currentFieldName;
@@ -143,7 +143,7 @@ public static GetAliasesResponse fromXContent(XContentParser parser) throws IOEx
143143

144144
if ("status".equals(currentFieldName)) {
145145
if ((token = parser.nextToken()) != Token.FIELD_NAME) {
146-
ensureExpectedToken(Token.VALUE_NUMBER, token, parser::getTokenLocation);
146+
ensureExpectedToken(Token.VALUE_NUMBER, token, parser);
147147
status = RestStatus.fromCode(parser.intValue());
148148
}
149149
} else if ("error".equals(currentFieldName)) {

client/rest-high-level/src/main/java/org/elasticsearch/client/asyncsearch/AsyncSearchResponse.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
184184

185185
private static SearchResponse parseSearchResponse(XContentParser p) throws IOException {
186186
// we should be before the opening START_OBJECT of the response
187-
ensureExpectedToken(Token.START_OBJECT, p.currentToken(), p::getTokenLocation);
187+
ensureExpectedToken(Token.START_OBJECT, p.currentToken(), p);
188188
p.nextToken();
189189
return SearchResponse.innerFromXContent(p);
190190
}

client/rest-high-level/src/main/java/org/elasticsearch/client/cluster/RemoteInfoResponse.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public List<RemoteConnectionInfo> getInfos() {
4343
}
4444

4545
public static RemoteInfoResponse fromXContent(XContentParser parser) throws IOException {
46-
ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.nextToken(), parser::getTokenLocation);
46+
ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.nextToken(), parser);
4747

4848
List<RemoteConnectionInfo> infos = new ArrayList<>();
4949

@@ -53,7 +53,7 @@ public static RemoteInfoResponse fromXContent(XContentParser parser) throws IOEx
5353
RemoteConnectionInfo info = RemoteConnectionInfo.fromXContent(parser, clusterAlias);
5454
infos.add(info);
5555
}
56-
ensureExpectedToken(XContentParser.Token.END_OBJECT, token, parser::getTokenLocation);
56+
ensureExpectedToken(XContentParser.Token.END_OBJECT, token, parser);
5757
return new RemoteInfoResponse(infos);
5858
}
5959
}

client/rest-high-level/src/main/java/org/elasticsearch/client/core/CountResponse.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,9 @@ public RestStatus status() {
101101
}
102102

103103
public static CountResponse fromXContent(XContentParser parser) throws IOException {
104-
ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.nextToken(), parser::getTokenLocation);
104+
ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.nextToken(), parser);
105105
parser.nextToken();
106-
ensureExpectedToken(XContentParser.Token.FIELD_NAME, parser.currentToken(), parser::getTokenLocation);
106+
ensureExpectedToken(XContentParser.Token.FIELD_NAME, parser.currentToken(), parser);
107107
String currentName = parser.currentName();
108108
Boolean terminatedEarly = null;
109109
long count = 0;

client/rest-high-level/src/main/java/org/elasticsearch/client/ilm/GetLifecyclePolicyResponse.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public static GetLifecyclePolicyResponse fromXContent(XContentParser parser) thr
6060
if (parser.currentToken() == null) {
6161
parser.nextToken();
6262
}
63-
ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser::getTokenLocation);
63+
ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser);
6464
parser.nextToken();
6565

6666
while (!parser.isClosed()) {

client/rest-high-level/src/main/java/org/elasticsearch/client/indices/CloseIndexResponse.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,10 @@ public static class IndexResult {
8888
static {
8989
PARSER.declareBoolean(optionalConstructorArg(), new ParseField("closed"));
9090
PARSER.declareObject(optionalConstructorArg(), (p, c) -> {
91-
XContentParserUtils.ensureExpectedToken(XContentParser.Token.START_OBJECT, p.currentToken(), p::getTokenLocation);
92-
XContentParserUtils.ensureExpectedToken(XContentParser.Token.FIELD_NAME, p.nextToken(), p::getTokenLocation);
91+
XContentParserUtils.ensureExpectedToken(XContentParser.Token.START_OBJECT, p.currentToken(), p);
92+
XContentParserUtils.ensureExpectedToken(XContentParser.Token.FIELD_NAME, p.nextToken(), p);
9393
Exception e = ElasticsearchException.failureFromXContent(p);
94-
XContentParserUtils.ensureExpectedToken(XContentParser.Token.END_OBJECT, p.nextToken(), p::getTokenLocation);
94+
XContentParserUtils.ensureExpectedToken(XContentParser.Token.END_OBJECT, p.nextToken(), p);
9595
return e;
9696
}, new ParseField("exception"));
9797
PARSER.declareNamedObjects(optionalConstructorArg(),

client/rest-high-level/src/main/java/org/elasticsearch/client/indices/GetFieldMappingsResponse.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public FieldMappingMetadata fieldMappings(String index, String field) {
8888

8989

9090
public static GetFieldMappingsResponse fromXContent(XContentParser parser) throws IOException {
91-
ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.nextToken(), parser::getTokenLocation);
91+
ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.nextToken(), parser);
9292
final Map<String, Map<String, FieldMappingMetadata>> mappings = new HashMap<>();
9393
if (parser.nextToken() == XContentParser.Token.FIELD_NAME) {
9494
while (parser.currentToken() == XContentParser.Token.FIELD_NAME) {

client/rest-high-level/src/main/java/org/elasticsearch/client/indices/GetIndexResponse.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ private static List<AliasMetadata> parseAliases(XContentParser parser) throws IO
136136
List<AliasMetadata> indexAliases = new ArrayList<>();
137137
// We start at START_OBJECT since parseIndexEntry ensures that
138138
while (parser.nextToken() != Token.END_OBJECT) {
139-
ensureExpectedToken(Token.FIELD_NAME, parser.currentToken(), parser::getTokenLocation);
139+
ensureExpectedToken(Token.FIELD_NAME, parser.currentToken(), parser);
140140
indexAliases.add(AliasMetadata.Builder.fromXContent(parser));
141141
}
142142
return indexAliases;
@@ -154,7 +154,7 @@ private static IndexEntry parseIndexEntry(XContentParser parser) throws IOExcept
154154
String dataStream = null;
155155
// We start at START_OBJECT since fromXContent ensures that
156156
while (parser.nextToken() != Token.END_OBJECT) {
157-
ensureExpectedToken(Token.FIELD_NAME, parser.currentToken(), parser::getTokenLocation);
157+
ensureExpectedToken(Token.FIELD_NAME, parser.currentToken(), parser);
158158
parser.nextToken();
159159
if (parser.currentToken() == Token.START_OBJECT) {
160160
switch (parser.currentName()) {
@@ -213,7 +213,7 @@ public static GetIndexResponse fromXContent(XContentParser parser) throws IOExce
213213
if (parser.currentToken() == null) {
214214
parser.nextToken();
215215
}
216-
ensureExpectedToken(Token.START_OBJECT, parser.currentToken(), parser::getTokenLocation);
216+
ensureExpectedToken(Token.START_OBJECT, parser.currentToken(), parser);
217217
parser.nextToken();
218218

219219
while (!parser.isClosed()) {

client/rest-high-level/src/main/java/org/elasticsearch/client/indices/GetMappingsResponse.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public static GetMappingsResponse fromXContent(XContentParser parser) throws IOE
5050

5151
XContentParserUtils.ensureExpectedToken(parser.currentToken(),
5252
XContentParser.Token.START_OBJECT,
53-
parser::getTokenLocation);
53+
parser);
5454

5555
Map<String, Object> parts = parser.map();
5656

client/rest-high-level/src/main/java/org/elasticsearch/client/license/StartBasicResponse.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,15 @@ public class StartBasicResponse {
6767
throw new XContentParseException(parser.getTokenLocation(), "expected message header or acknowledgement");
6868
}
6969
if (new ParseField("message").getPreferredName().equals(currentFieldName)) {
70-
ensureExpectedToken(XContentParser.Token.VALUE_STRING, token, parser::getTokenLocation);
70+
ensureExpectedToken(XContentParser.Token.VALUE_STRING, token, parser);
7171
message = parser.text();
7272
} else {
7373
if (token != XContentParser.Token.START_ARRAY) {
7474
throw new XContentParseException(parser.getTokenLocation(), "unexpected acknowledgement type");
7575
}
7676
List<String> acknowledgeMessagesList = new ArrayList<>();
7777
while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) {
78-
ensureExpectedToken(XContentParser.Token.VALUE_STRING, token, parser::getTokenLocation);
78+
ensureExpectedToken(XContentParser.Token.VALUE_STRING, token, parser);
7979
acknowledgeMessagesList.add(parser.text());
8080
}
8181
acknowledgeMessages.put(currentFieldName, acknowledgeMessagesList.toArray(new String[0]));

0 commit comments

Comments
 (0)