Skip to content

Commit 7a6f394

Browse files
authored
Use supplier in validateForReservedState (#135459)
We only use the request string in case the validation failed, but serializing the whole request class can be relatively expensive (e.g. if a component template has many mappings, the `CompressedXContent` needs to be converted to string). Therefore, it makes more sense to use a `Supplier` which only gets invoked when validation failed.
1 parent e9629f3 commit 7a6f394

File tree

9 files changed

+13
-12
lines changed

9 files changed

+13
-12
lines changed

server/src/main/java/org/elasticsearch/action/admin/cluster/repositories/delete/TransportDeleteRepositoryAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ protected void validateForReservedState(DeleteRepositoryRequest request, Cluster
9595
ProjectStateRegistry.get(state).reservedStateMetadata(projectResolver.getProjectId()).values(),
9696
reservedStateHandlerName().get(),
9797
modifiedKeys(request),
98-
request.toString()
98+
request::toString
9999
);
100100
}
101101
}

server/src/main/java/org/elasticsearch/action/admin/indices/template/delete/TransportDeleteComposableIndexTemplateAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ protected void validateForReservedState(Request request, ClusterState state) {
9999
ProjectStateRegistry.get(state).reservedStateMetadata(projectResolver.getProjectId()).values(),
100100
reservedStateHandlerName().get(),
101101
modifiedKeys(request),
102-
request.toString()
102+
request::toString
103103
);
104104
}
105105

server/src/main/java/org/elasticsearch/action/admin/indices/template/put/TransportPutComponentTemplateAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ protected void validateForReservedState(PutComponentTemplateAction.Request reque
134134
ProjectStateRegistry.get(state).reservedStateMetadata(projectResolver.getProjectId()).values(),
135135
reservedStateHandlerName().get(),
136136
modifiedKeys(request),
137-
request.toString()
137+
request::toString
138138
);
139139
}
140140
}

server/src/main/java/org/elasticsearch/action/admin/indices/template/put/TransportPutComposableIndexTemplateAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ protected void validateForReservedState(Request request, ClusterState state) {
145145
ProjectStateRegistry.get(state).reservedStateMetadata(projectResolver.getProjectId()).values(),
146146
reservedStateHandlerName().get(),
147147
modifiedKeys(request),
148-
request.toString()
148+
request::toString
149149
);
150150
}
151151

server/src/main/java/org/elasticsearch/action/ingest/PutPipelineTransportAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ protected void validateForReservedState(PutPipelineRequest request, ClusterState
8484
ProjectStateRegistry.get(state).reservedStateMetadata(projectResolver.getProjectId()).values(),
8585
reservedStateHandlerName().get(),
8686
modifiedKeys(request),
87-
request.toString()
87+
request::toString
8888
);
8989
}
9090
}

server/src/main/java/org/elasticsearch/action/support/ReservedStateAwareHandledTransportAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ protected void doExecute(Task task, Request request, ActionListener<Response> li
5353
clusterService.state().metadata().reservedStateMetadata().values(),
5454
reservedStateHandlerName().get(),
5555
modifiedKeys(request),
56-
request.toString()
56+
request::toString
5757
);
5858
doExecuteProtected(task, request, listener);
5959
}

server/src/main/java/org/elasticsearch/action/support/master/TransportMasterNodeAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ protected void validateForReservedState(Request request, ClusterState state) {
143143
state.metadata().reservedStateMetadata().values(),
144144
handlerName.get(),
145145
modifiedKeys(request),
146-
request.toString()
146+
request::toString
147147
);
148148
}
149149

server/src/main/java/org/elasticsearch/reservedstate/ActionWithReservedState.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.util.List;
1818
import java.util.Optional;
1919
import java.util.Set;
20+
import java.util.function.Supplier;
2021

2122
import static org.elasticsearch.core.Strings.format;
2223

@@ -53,13 +54,13 @@ default Set<String> modifiedKeys(T request) {
5354
* @param reservedStateMetadata the metadata to check
5455
* @param handlerName the name of the reserved state handler related to this implementation
5556
* @param modified the set of modified keys by the related request
56-
* @param request a string representation of the request for error reporting purposes
57+
* @param requestSupplier a supplier for a string representation of the request for error reporting purposes
5758
*/
5859
default void validateForReservedState(
5960
Collection<ReservedStateMetadata> reservedStateMetadata,
6061
String handlerName,
6162
Set<String> modified,
62-
String request
63+
Supplier<String> requestSupplier
6364
) {
6465
List<String> errors = new ArrayList<>();
6566

@@ -72,7 +73,7 @@ default void validateForReservedState(
7273

7374
if (errors.isEmpty() == false) {
7475
throw new IllegalArgumentException(
75-
format("Failed to process request [%s] with errors: [%s]", request, String.join(", ", errors))
76+
format("Failed to process request [%s] with errors: [%s]", requestSupplier.get(), String.join(", ", errors))
7677
);
7778
}
7879
}

server/src/test/java/org/elasticsearch/action/admin/indices/template/reservedstate/ReservedComposableIndexTemplateActionTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -963,7 +963,7 @@ public void testTemplatesWithReservedPrefix() throws Exception {
963963
withReservedState.reservedStateMetadata(projectId).values(),
964964
ReservedComposableIndexTemplateAction.NAME,
965965
modifiedKeys,
966-
pr.name()
966+
pr::name
967967
)
968968
).getMessage()
969969
);
@@ -979,7 +979,7 @@ public void testTemplatesWithReservedPrefix() throws Exception {
979979
withReservedState.reservedStateMetadata(projectId).values(),
980980
ReservedComposableIndexTemplateAction.NAME,
981981
modifiedKeysOK,
982-
prOK.name()
982+
prOK::name
983983
);
984984
}
985985

0 commit comments

Comments
 (0)