Reduce allocations caused by producible media types

Closes gh-29412
This commit is contained in:
Christoph Dreis 2022-11-01 20:04:13 +01:00 committed by Sébastien Deleuze
parent e1df056059
commit 58bb6e7181
2 changed files with 12 additions and 6 deletions

View File

@ -141,9 +141,12 @@ public abstract class RequestMappingInfoHandlerMapping extends AbstractHandlerMe
exchange.getAttributes().put(URI_TEMPLATE_VARIABLES_ATTRIBUTE, uriVariables); exchange.getAttributes().put(URI_TEMPLATE_VARIABLES_ATTRIBUTE, uriVariables);
exchange.getAttributes().put(MATRIX_VARIABLES_ATTRIBUTE, matrixVariables); exchange.getAttributes().put(MATRIX_VARIABLES_ATTRIBUTE, matrixVariables);
if (!info.getProducesCondition().getProducibleMediaTypes().isEmpty()) { ProducesRequestCondition producesCondition = info.getProducesCondition();
Set<MediaType> mediaTypes = info.getProducesCondition().getProducibleMediaTypes(); if (!producesCondition.isEmpty()) {
exchange.getAttributes().put(PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, mediaTypes); Set<MediaType> mediaTypes = producesCondition.getProducibleMediaTypes();
if (!mediaTypes.isEmpty()) {
exchange.getAttributes().put(PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, mediaTypes);
}
} }
} }

View File

@ -147,9 +147,12 @@ public abstract class RequestMappingInfoHandlerMapping extends AbstractHandlerMe
extractMatchDetails((PatternsRequestCondition) condition, lookupPath, request); extractMatchDetails((PatternsRequestCondition) condition, lookupPath, request);
} }
if (!info.getProducesCondition().getProducibleMediaTypes().isEmpty()) { ProducesRequestCondition producesCondition = info.getProducesCondition();
Set<MediaType> mediaTypes = info.getProducesCondition().getProducibleMediaTypes(); if (!producesCondition.isEmpty()) {
request.setAttribute(PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, mediaTypes); Set<MediaType> mediaTypes = producesCondition.getProducibleMediaTypes();
if (!mediaTypes.isEmpty()) {
request.setAttribute(PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, mediaTypes);
}
} }
} }