[ 
http://jira.qos.ch/browse/LBCLASSIC-70?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=10842#action_10842
 ] 

Szel Zoltan commented on LBCLASSIC-70:
--------------------------------------

Hello Ceki,

the problem relies in the clear() and setContextMap() methods. Both of them 
destorys the original map, which in my situation is  assigned to LoggingEvents 
sitting in a queue and waiting for to be processed. 

Neither of this method should change the content of the original map.
Proposed solution:

public void clear() {
    copyOnInheritThreadLocal.remove();
}

public void setContextMap(Map contextMap) {
    HashMap<String, String> newMap = new HashMap<String, String>();
    newMap.putAll(contextMap);
   
    copyOnInheritThreadLocal.set(newMap);
  }
}

l



> Let the LogbackMDCAdapter exhibit a full copy on write semantics
> ----------------------------------------------------------------
>
>                 Key: LBCLASSIC-70
>                 URL: http://jira.qos.ch/browse/LBCLASSIC-70
>             Project: logback-classic
>          Issue Type: Improvement
>          Components: Other
>    Affects Versions: 0.9.9, 0.9.10
>            Reporter: Szel Zoltan
>            Assignee: Logback dev list
>             Fix For: unspecified
>
>
> Hi,
> I have implemented an async appender and i was very happy seeing that most of 
> the methods of the MDCAdapter exhibits copy on write semantics. This is very 
> handy in this scenerio, it helps to transfer the MDC map onto the background 
> thread. But i have noticed, that the clear and setContextMap methods are 
> breaking this semantics. Is there any chance in the next release to change 
> the implementation of the clear and setContextMap to conform with cow?
> Thanks very much.
> P.S.: We are waiting for legal approval to contribute our appender 
> implementation back to the community.
> Best Regards,
> Zoltan Szel

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.qos.ch/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
logback-dev mailing list
[email protected]
http://qos.ch/mailman/listinfo/logback-dev

Reply via email to