From 4875135dc9590e69207d80b8af8f17fabe45235a Mon Sep 17 00:00:00 2001 From: gojomo Date: Fri, 18 Jun 2010 02:37:42 +0000 Subject: [PATCH] [HER-1762] H3 performance tuning * KeyedProperties.java avoid allocation hotspot shown by profiling (creating iterator for empty collection) --- .../java/org/archive/spring/KeyedProperties.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/commons/src/main/java/org/archive/spring/KeyedProperties.java b/commons/src/main/java/org/archive/spring/KeyedProperties.java index 24ce22cf..c6ea55e3 100644 --- a/commons/src/main/java/org/archive/spring/KeyedProperties.java +++ b/commons/src/main/java/org/archive/spring/KeyedProperties.java @@ -56,13 +56,15 @@ public class KeyedProperties extends ConcurrentHashMap { * @return discovered override, or local value */ public Object get(String key) { - for(OverlayContext ocontext: threadOverrides.get()) { - for(String name: ocontext.getOverlayNames()) { - Map m = ocontext.getOverlayMap(name); - for(String ok : getOverrideKeys(key)) { - Object val = m.get(ok); - if(val!=null) { - return val; + if(!threadOverrides.get().isEmpty()) { + for(OverlayContext ocontext: threadOverrides.get()) { + for(String name: ocontext.getOverlayNames()) { + Map m = ocontext.getOverlayMap(name); + for(String ok : getOverrideKeys(key)) { + Object val = m.get(ok); + if(val!=null) { + return val; + } } } }