+ HashMap<String, QueryResponseWriter> m= new HashMap<>(14);
HashMap default load factor is 0.75, so this will still get resized after the 10th item. We should either use the two argument constructor with loadFactor = 1.0 or a larger initial capacity to compensate (19).
+ Map<String, T> result = new LinkedHashMap<>(map.entrySet().size());
Why not map.size()? Also, same comments about load factor apply.