1 /** 2 * Logback: the reliable, generic, fast and flexible logging framework. 3 * Copyright (C) 1999-2015, QOS.ch. All rights reserved. 4 * 5 * This program and the accompanying materials are dual-licensed under 6 * either the terms of the Eclipse Public License v1.0 as published by 7 * the Eclipse Foundation 8 * 9 * or (per the licensee's choosing) 10 * 11 * under the terms of the GNU Lesser General Public License version 2.1 12 * as published by the Free Software Foundation. 13 */ 14 package ch.qos.logback.classic.util; 15 16 import java.util.HashMap; 17 18 /** 19 * This class extends InheritableThreadLocal so that children threads get a copy 20 * of the parent's hashmap. 21 * 22 * @author Ceki Gülcü 23 */ 24 public class CopyOnInheritThreadLocal extends InheritableThreadLocal<HashMap<String, String>> { 25 26 /** 27 * Child threads should get a copy of the parent's hashmap. 28 */ 29 @Override 30 protected HashMap<String, String> childValue(HashMap<String, String> parentValue) { 31 if (parentValue == null) { 32 return null; 33 } else { 34 return new HashMap<String, String>(parentValue); 35 } 36 } 37 38 }