Ticket #16510: cache_v2.patch

File cache_v2.patch, 1.2 KB (added by GerdP, 3 months ago)
  • ImageProvider.java

     
    306306     * The icon cache
    307307     */
    308308    private static final Map<String, ImageResource> cache = new HashMap<>();
     309    private static final Map<String, ImageIcon> typeCache = new HashMap<>();
    309310
    310311    /**
    311312     * Caches the image data for rotated versions of the same image.
     
    836837        synchronized (cache) {
    837838            cache.clear();
    838839        }
     840        synchronized (typeCache) {
     841            typeCache.clear();
     842        }
    839843    }
    840844
    841845    /**
     
    14731477     */
    14741478    public static ImageIcon get(OsmPrimitiveType type) {
    14751479        CheckParameterUtil.ensureParameterNotNull(type, "type");
    1476         return get("data", type.getAPIName());
     1480        synchronized (typeCache) {
     1481            ImageIcon ii  = typeCache.get(type.getAPIName());
     1482            if (ii == null) {
     1483                ii = get("data", type.getAPIName());
     1484                if (ii != null)
     1485                    typeCache.put(type.getAPIName(), ii);
     1486            }
     1487            return ii;
     1488        }
    14771489    }
    14781490
    14791491    /**