Переглянути джерело

Use non-blocking Map implementation for caches (#16582)

Change-Id: Id2d3bc317f6763480b2ef5ce71244f048c5cfc26
tags/7.5.0.alpha1
Leif Åstrand 9 роки тому
джерело
коміт
648b493cbb

+ 3
- 6
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<Class<?>, AttributeCacheEntry> cache = Collections
.synchronizedMap(new HashMap<Class<?>, AttributeCacheEntry>());
private static Map<Class<?>, AttributeCacheEntry> cache = new ConcurrentHashMap<Class<?>, 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<String, Method[]> accessMethods = Collections
.synchronizedMap(new HashMap<String, Method[]>());
private Map<String, Method[]> accessMethods = new ConcurrentHashMap<String, Method[]>();

private void addAttribute(String attribute, Method getter, Method setter) {
Method[] methods = new Method[2];

+ 2
- 3
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<Class<?>, Component> instanceCache = Collections
.synchronizedMap(new HashMap<Class<?>, Component>());
private static Map<Class<?>, Component> instanceCache = new ConcurrentHashMap<Class<?>, Component>();

// The root component of the component hierarchy
private Component rootComponent = null;

+ 3
- 4
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<Class<?>, Converter<String, ?>> converterMap = Collections
.synchronizedMap(new HashMap<Class<?>, Converter<String, ?>>());
private final Map<Class<?>, Converter<String, ?>> converterMap = new ConcurrentHashMap<Class<?>, Converter<String, ?>>();

/**
* Creates the formatter with default types already mapped.

+ 3
- 6
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<Integer, String> keyCodeMap = Collections
.synchronizedMap(new HashMap<Integer, String>());
private final Map<String, Integer> presentationMap = Collections
.synchronizedMap(new HashMap<String, Integer>());
private final Map<Integer, String> keyCodeMap = new ConcurrentHashMap<Integer, String>();
private final Map<String, Integer> presentationMap = new ConcurrentHashMap<String, Integer>();

{
// map modifiers

Завантаження…
Відмінити
Зберегти