From 932f771380db98f80c75ccb16cd122db1bfdc970 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Sat, 29 Jun 2019 22:25:57 -0700 Subject: [PATCH] Improve performance of FormContentFilter Improve the performance of `FormContentFilter` by checking directly if `contentType` is empty. This saves the need for an exception to thrown then immediately caught. Closes gh-23216 --- .../web/filter/FormContentFilter.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/web/filter/FormContentFilter.java b/spring-web/src/main/java/org/springframework/web/filter/FormContentFilter.java index 4008455ee4..a3564b07ec 100644 --- a/spring-web/src/main/java/org/springframework/web/filter/FormContentFilter.java +++ b/spring-web/src/main/java/org/springframework/web/filter/FormContentFilter.java @@ -109,16 +109,17 @@ public class FormContentFilter extends OncePerRequestFilter { } private boolean shouldParse(HttpServletRequest request) { - if (!HTTP_METHODS.contains(request.getMethod())) { - return false; - } - try { - MediaType mediaType = MediaType.parseMediaType(request.getContentType()); - return MediaType.APPLICATION_FORM_URLENCODED.includes(mediaType); - } - catch (IllegalArgumentException ex) { - return false; + String contentType = request.getContentType(); + String method = request.getMethod(); + if (StringUtils.hasLength(contentType) && HTTP_METHODS.contains(method)) { + try { + MediaType mediaType = MediaType.parseMediaType(contentType); + return MediaType.APPLICATION_FORM_URLENCODED.includes(mediaType); + } + catch (IllegalArgumentException ex) { + } } + return false; }