From 6b9c8b56c6046fba9591bb900aaaaa05984418b6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Leif=20=C3=85strand?= Date: Wed, 4 Feb 2015 20:45:10 +0200 Subject: [PATCH] Use non-blocking Map implementation for caches (#16582) Change-Id: Id2d3bc317f6763480b2ef5ce71244f048c5cfc26 --- .../vaadin/ui/declarative/DesignAttributeHandler.java | 9 +++------ server/src/com/vaadin/ui/declarative/DesignContext.java | 5 ++--- .../src/com/vaadin/ui/declarative/DesignFormatter.java | 7 +++---- .../ui/declarative/converters/ShortcutKeyMapper.java | 9 +++------ 4 files changed, 11 insertions(+), 19 deletions(-) diff --git a/server/src/com/vaadin/ui/declarative/DesignAttributeHandler.java b/server/src/com/vaadin/ui/declarative/DesignAttributeHandler.java index 3e2c01c881..57a54cb9d8 100644 --- a/server/src/com/vaadin/ui/declarative/DesignAttributeHandler.java +++ b/server/src/com/vaadin/ui/declarative/DesignAttributeHandler.java @@ -23,10 +23,9 @@ import java.io.Serializable; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Matcher; @@ -55,8 +54,7 @@ public class DesignAttributeHandler implements Serializable { return Logger.getLogger(DesignAttributeHandler.class.getName()); } - private static Map, AttributeCacheEntry> cache = Collections - .synchronizedMap(new HashMap, AttributeCacheEntry>()); + private static Map, AttributeCacheEntry> cache = new ConcurrentHashMap, AttributeCacheEntry>(); // translates string <-> object private static DesignFormatter FORMATTER = new DesignFormatter(); @@ -403,8 +401,7 @@ public class DesignAttributeHandler implements Serializable { * @author Vaadin Ltd */ private static class AttributeCacheEntry implements Serializable { - private Map accessMethods = Collections - .synchronizedMap(new HashMap()); + private Map accessMethods = new ConcurrentHashMap(); private void addAttribute(String attribute, Method getter, Method setter) { Method[] methods = new Method[2]; diff --git a/server/src/com/vaadin/ui/declarative/DesignContext.java b/server/src/com/vaadin/ui/declarative/DesignContext.java index b298c95320..5f160d6f26 100644 --- a/server/src/com/vaadin/ui/declarative/DesignContext.java +++ b/server/src/com/vaadin/ui/declarative/DesignContext.java @@ -17,10 +17,10 @@ package com.vaadin.ui.declarative; import java.io.Serializable; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import org.jsoup.nodes.Attributes; import org.jsoup.nodes.Document; @@ -44,8 +44,7 @@ import com.vaadin.ui.HasComponents; public class DesignContext implements Serializable { // cache for object instances - private static Map, Component> instanceCache = Collections - .synchronizedMap(new HashMap, Component>()); + private static Map, Component> instanceCache = new ConcurrentHashMap, Component>(); // The root component of the component hierarchy private Component rootComponent = null; diff --git a/server/src/com/vaadin/ui/declarative/DesignFormatter.java b/server/src/com/vaadin/ui/declarative/DesignFormatter.java index fdce563104..103142a11b 100644 --- a/server/src/com/vaadin/ui/declarative/DesignFormatter.java +++ b/server/src/com/vaadin/ui/declarative/DesignFormatter.java @@ -21,11 +21,11 @@ import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.util.Collections; import java.util.Date; -import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.TimeZone; +import java.util.concurrent.ConcurrentHashMap; import com.vaadin.data.util.converter.Converter; import com.vaadin.event.ShortcutAction; @@ -34,8 +34,8 @@ import com.vaadin.ui.declarative.converters.DesignDateConverter; import com.vaadin.ui.declarative.converters.DesignFormatConverter; import com.vaadin.ui.declarative.converters.DesignResourceConverter; import com.vaadin.ui.declarative.converters.DesignShortcutActionConverter; -import com.vaadin.ui.declarative.converters.ShortcutKeyMapper; import com.vaadin.ui.declarative.converters.DesignToStringConverter; +import com.vaadin.ui.declarative.converters.ShortcutKeyMapper; /** * Class focused on flexible and consistent formatting and parsing of different @@ -47,8 +47,7 @@ import com.vaadin.ui.declarative.converters.DesignToStringConverter; */ public class DesignFormatter implements Serializable { - private final Map, Converter> converterMap = Collections - .synchronizedMap(new HashMap, Converter>()); + private final Map, Converter> converterMap = new ConcurrentHashMap, Converter>(); /** * Creates the formatter with default types already mapped. diff --git a/server/src/com/vaadin/ui/declarative/converters/ShortcutKeyMapper.java b/server/src/com/vaadin/ui/declarative/converters/ShortcutKeyMapper.java index 46c38ce0e0..2940c82c06 100644 --- a/server/src/com/vaadin/ui/declarative/converters/ShortcutKeyMapper.java +++ b/server/src/com/vaadin/ui/declarative/converters/ShortcutKeyMapper.java @@ -16,9 +16,8 @@ package com.vaadin.ui.declarative.converters; import java.io.Serializable; -import java.util.Collections; -import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import com.vaadin.event.ShortcutAction.KeyCode; import com.vaadin.event.ShortcutAction.ModifierKey; @@ -55,10 +54,8 @@ public interface ShortcutKeyMapper extends Serializable { */ public static final ShortcutKeyMapper DEFAULT = new ShortcutKeyMapper() { - private final Map keyCodeMap = Collections - .synchronizedMap(new HashMap()); - private final Map presentationMap = Collections - .synchronizedMap(new HashMap()); + private final Map keyCodeMap = new ConcurrentHashMap(); + private final Map presentationMap = new ConcurrentHashMap(); { // map modifiers -- 2.39.5