From 42f402de0e2ecb9e2816156ed78225cb41258390 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Leif=20=C3=85strand?= Date: Wed, 28 Nov 2012 10:58:43 +0200 Subject: [PATCH] Avoid using the same Matcher from multiple threads (#10184) Change-Id: I801a60db3a1b040db98fc597a35434c4a0b2ba83 --- .../src/com/vaadin/server/GlobalResourceHandler.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/server/src/com/vaadin/server/GlobalResourceHandler.java b/server/src/com/vaadin/server/GlobalResourceHandler.java index 13dbd006a4..acaa6a168e 100644 --- a/server/src/com/vaadin/server/GlobalResourceHandler.java +++ b/server/src/com/vaadin/server/GlobalResourceHandler.java @@ -60,9 +60,9 @@ public class GlobalResourceHandler implements RequestHandler { private int nextLegacyId = 0; // APP/global/[uiid]/[type]/[id] - private static final Matcher matcher = Pattern.compile( - "^/?" + ApplicationConstants.APP_PATH + '/' + RESOURCE_REQUEST_PATH - + "(\\d+)/(([^/]+)(/.*))").matcher(""); + private static final Pattern pattern = Pattern.compile("^/?" + + ApplicationConstants.APP_PATH + '/' + RESOURCE_REQUEST_PATH + + "(\\d+)/(([^/]+)(/.*))"); @Override public boolean handleRequest(VaadinSession session, VaadinRequest request, @@ -72,7 +72,7 @@ public class GlobalResourceHandler implements RequestHandler { return false; } - matcher.reset(pathInfo); + Matcher matcher = pattern.matcher(pathInfo); if (!matcher.matches()) { return false; } @@ -81,9 +81,6 @@ public class GlobalResourceHandler implements RequestHandler { String type = matcher.group(3); String key = matcher.group(2); - // Allow GCing pathInfo string - matcher.reset(); - if (key == null) { return error(request, response, pathInfo + " is not a valid global resource path"); -- 2.39.5