{"action":"created","issue":{"url":"https://api.github.com/repos/qos-ch/slf4j/issues/99","labels_url":"https://api.github.com/repos/qos-ch/slf4j/issues/99/labels{/name}","comments_url":"https://api.github.com/repos/qos-ch/slf4j/issues/99/comments","events_url":"https://api.github.com/repos/qos-ch/slf4j/issues/99/events","html_url":"https://github.com/qos-ch/slf4j/pull/99","id":55693729,"number":99,"title":"Fix bug: http://bugzilla.slf4j.org/show_bug.cgi?id=325","user":{"login":"lukecwik","id":10078956,"avatar_url":"https://avatars.githubusercontent.com/u/10078956?v=3","gravatar_id":"","url":"https://api.github.com/users/lukecwik","html_url":"https://github.com/lukecwik","followers_url":"https://api.github.com/users/lukecwik/followers","following_url":"https://api.github.com/users/lukecwik/following{/other_user}","gists_url":"https://api.github.com/users/lukecwik/gists{/gist_id}","starred_url":"https://api.github.com/users/lukecwik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukecwik/subscriptions","organizations_url":"https://api.github.com/users/lukecwik/orgs","repos_url":"https://api.github.com/users/lukecwik/repos","events_url":"https://api.github.com/users/lukecwik/events{/privacy}","received_events_url":"https://api.github.com/users/lukecwik/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-01-27T23:53:01Z","updated_at":"2015-04-10T00:55:19Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/qos-ch/slf4j/pulls/99","html_url":"https://github.com/qos-ch/slf4j/pull/99","diff_url":"https://github.com/qos-ch/slf4j/pull/99.diff","patch_url":"https://github.com/qos-ch/slf4j/pull/99.patch"},"body":"BasicMDCAdapter leaks MDC information to non-child threads\r\nBasicMDCAdapter uses a ConcurrentHashMap which is passed by reference from the parent to the child. All child threads then share the same map reference and any modifications by one child is visible to the parent thread and also all other child threads.\r\n\r\nSwapped to creating a copy of the parents map instead of storing reference. Also, since this is expected to be only accessed from within the same thread, swapped to use a hash map instead of a concurrent hash map.\r\n\r\nSigned-off-by: Luke Cwik <lcwik@google.com>"},"comment":{"url":"https://api.github.com/repos/qos-ch/slf4j/issues/comments/91391546","html_url":"https://github.com/qos-ch/slf4j/pull/99#issuecomment-91391546","issue_url":"https://api.github.com/repos/qos-ch/slf4j/issues/99","id":91391546,"user":{"login":"stephenh","id":6401,"avatar_url":"https://avatars.githubusercontent.com/u/6401?v=3","gravatar_id":"","url":"https://api.github.com/users/stephenh","html_url":"https://github.com/stephenh","followers_url":"https://api.github.com/users/stephenh/followers","following_url":"https://api.github.com/users/stephenh/following{/other_user}","gists_url":"https://api.github.com/users/stephenh/gists{/gist_id}","starred_url":"https://api.github.com/users/stephenh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stephenh/subscriptions","organizations_url":"https://api.github.com/users/stephenh/orgs","repos_url":"https://api.github.com/users/stephenh/repos","events_url":"https://api.github.com/users/stephenh/events{/privacy}","received_events_url":"https://api.github.com/users/stephenh/received_events","type":"User","site_admin":false},"created_at":"2015-04-10T00:55:19Z","updated_at":"2015-04-10T00:55:19Z","body":"FWIW I've been running this patch in production for ~a week and our MDC output looks much better."}}