Changeset 14823 in josm


Ignore:
Timestamp:
2019-03-03T00:09:44+01:00 (8 weeks ago)
Author:
Don-vip
Message:

see #17311 - revert changes from r14747 / r14759, cause ConcurrentModificationException / IllegalStateException

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java

    r14759 r14823  
    1212import java.util.ArrayList;
    1313import java.util.Collection;
     14import java.util.HashMap;
    1415import java.util.LinkedList;
    1516import java.util.List;
    1617import java.util.Map;
    17 import java.util.concurrent.ConcurrentHashMap;
    1818
    1919import javax.swing.ImageIcon;
     
    7979        // will make gui for it so I'm keeping it here
    8080
    81         private static final Map<String, TemplateEntryProperty> CACHE = new ConcurrentHashMap<>();
     81        private static final Map<String, TemplateEntryProperty> CACHE = new HashMap<>();
    8282
    8383        public static TemplateEntryProperty forMarker(String layerName) {
    8484            String key = "draw.rawgps.layer.wpt.pattern";
    8585            if (layerName != null) {
    86                 return CACHE.computeIfAbsent(key + '.' + layerName, k -> new TemplateEntryProperty(k, "", forMarker(null)));
    87             } else {
    88                 return CACHE.computeIfAbsent(key, k -> new TemplateEntryProperty(k, LABEL_PATTERN_AUTO, null));
    89             }
     86                key += '.' + layerName;
     87            }
     88            TemplateEntryProperty result = CACHE.get(key);
     89            if (result == null) {
     90                String defaultValue = layerName == null ? LABEL_PATTERN_AUTO : "";
     91                TemplateEntryProperty parent = layerName == null ? null : forMarker(null);
     92                result = new TemplateEntryProperty(key, defaultValue, parent);
     93                CACHE.put(key, result);
     94            }
     95            return result;
    9096        }
    9197
     
    9399            String key = "draw.rawgps.layer.audiowpt.pattern";
    94100            if (layerName != null) {
    95                 return CACHE.computeIfAbsent(key + '.' + layerName, k ->
    96                         new TemplateEntryProperty(k, "", forAudioMarker(null)));
    97             } else {
    98                 return CACHE.computeIfAbsent(key, k ->
    99                         new TemplateEntryProperty(k, "?{ '{name}' | '{desc}' | '{" + MARKER_FORMATTED_OFFSET + "}' }", null));
    100             }
     101                key += '.' + layerName;
     102            }
     103            TemplateEntryProperty result = CACHE.get(key);
     104            if (result == null) {
     105                String defaultValue = layerName == null ? "?{ '{name}' | '{desc}' | '{" + Marker.MARKER_FORMATTED_OFFSET + "}' }" : "";
     106                TemplateEntryProperty parent = layerName == null ? null : forAudioMarker(null);
     107                result = new TemplateEntryProperty(key, defaultValue, parent);
     108                CACHE.put(key, result);
     109            }
     110            return result;
    101111        }
    102112
Note: See TracChangeset for help on using the changeset viewer.