[ 
https://issues.apache.org/jira/browse/LOG4J2-2732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16990254#comment-16990254
 ] 

Gary D. Gregory commented on LOG4J2-2732:
-----------------------------------------

I do not think this is right, you want to pass in a Supplier here, not a 
String, otherwise, you are calling the method and in this case computing the ID 
every time, whether you need it or not. 

Hm... dang, I think we are still stuck on Java 7 for 2.x, so we'd have to use 
our own Supplier which we have somewhere in our code base...

> Add ThreadContext.putIfNull(String, String)
> -------------------------------------------
>
>                 Key: LOG4J2-2732
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2732
>             Project: Log4j 2
>          Issue Type: New Feature
>          Components: API
>            Reporter: Matt Pavlovich
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Provide a helper method that provides a 1-liner to put an identifier only if 
> it is not currently set. This removes an if-check in all classes that share a 
> design approach of assessing a uniqueId, such as request id, etc.
> {noformat}
> if(!ThreadContext.containsKey("uniqueId")) {
>    ThreadContext.put("uniqueId", generateUniqueId());
> }
> {noformat}
> Proposed:
> {noformat}
> ThreadContext.putIfNull("uniqueId", generateUniqueId());
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to