@Override protected final void putAllIfAbsent(PropagationFields parent) { if (!(parent instanceof MapPropagationFields)) return; MapPropagationFields mapParent = (MapPropagationFields) parent; Map<String, String> parentValues = mapParent.values; if (parentValues == null) return; synchronized (this) { if (values == null) { values = parentValues; return; } } for (Map.Entry<String, String> entry : parentValues.entrySet()) { if (values.containsKey(entry.getKey())) continue; // previous wins vs parent put(entry.getKey(), entry.getValue()); } }
@Override protected final void putAllIfAbsent(PropagationFields parent) { if (!(parent instanceof MapPropagationFields)) return; MapPropagationFields mapParent = (MapPropagationFields) parent; Map<String, String> parentValues = mapParent.values; if (parentValues == null) return; synchronized (this) { if (values == null) { values = parentValues; return; } } for (Map.Entry<String, String> entry : parentValues.entrySet()) { if (values.containsKey(entry.getKey())) continue; // previous wins vs parent put(entry.getKey(), entry.getValue()); } }