Skip to content

Commit 73d3c55

Browse files
committed
Use supplier in validateForReservedState
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 763bfe3 commit 73d3c55

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)