<div><div dir="auto"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">Hi,</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">I apologize if this is not a proper place to ask this question, in which case please point me where to the place where I should ask it. Also I apologize if I sent this email twice cause I had some bizarre issues with my mailbox.</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">I'm Marcin and I'm co-maintaining the Micrometer project [1] part of which is the Micrometer Observation API with which we are instrumenting libraries also in the domain of distributed tracing. What happens there is that when a scope is opened for a span [2], thread local entries are set, e.g. MDC has a correlation identifier attached (called trace id) and once the scope is closed, the MDC gets cleared [3]. The span API allows you to achieve this by opening a scope (e.g. pseudocode: `Scope scope = span.openScope()`) and later on you close the scope with `scope.close()`. This kind of code is often called within frameworks that give you some sort of a handler / listener mechanism [4] that is being called around actual user code invocation (you have methods like e.g. `before(...)`, `after(...)`). The current ScopedValue API doesn't allow that. Let me show that using the following example:</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">Let's say that we have an interface called a Handler</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">```</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">interface Handler {</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> /**</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> * Called before actual method execution</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> * @param map mutable map to pass between methods</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> */</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> void before(Map<Object, Object> map);</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> /**</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> * Called after actual method execution</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> * @param exception potential exception - can be null</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> * @param map mutable map to pass between methods</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> */</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> void after(Exception exception, Map<Object, Object> map) throws Exception;</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">}</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">```</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">Then let's say that we have a "Proxy" class that wraps the user code execution with the Handler</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">```</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">class Proxy {</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> private final Handler handler;</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> Proxy(Handler handler) {</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> this.handler = handler;</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> }</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> void run(Runnable runnable) throws Exception {</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> Map<Object, Object> map = new HashMap<>();</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> Exception exception = null;</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> handler.before(map);</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> try {</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> runnable.run();</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> } catch (Exception ex) {</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> exception = ex;</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> throw ex;</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> } finally {</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> handler.after(exception, map);</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> }</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> }</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">}</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">```</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">Then we have an implementation that uses ThreadLocal and a "scope" in a form of Closeable that will be opened in "before" and closed in "after". This is a simplification of the distributed tracing case.</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">```</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">class ThreadLocalValueHandler implements Handler {</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> static final ThreadLocal<String> threadLocal = new ThreadLocal<>();</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> @Override</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> public void before(Map<Object, Object> map) {</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> threadLocal.set("foo"); // simulates setting span in scope</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> Closeable scope = threadLocal::remove; // simulates setting of span in scope</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> map.put("scope", scope);</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> }</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> @Override</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> public void after(Exception exception, Map<Object, Object> map) throws Exception {</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> Closeable scope = (Closeable) map.get("scope");</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> scope.close(); // simulates closing the span scope</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> }</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">}</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">```</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">Now when we run it together we could get sth like this</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">```</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">public static void main(String[] args) throws Exception {</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> new Proxy(new ThreadLocalValueHandler()).</span><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">run(() -> {</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> System.out.println("HELLO [" + ThreadLocalValueHandler.</span><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">threadLocal.get() + "]");</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> });</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> System.out.println("Goodbye [" + ThreadLocalValueHandler.</span><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">threadLocal.get() + "]");</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none"> }</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">```</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">And the output would be</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">```</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">HELLO [foo]</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">Goodbye [null]</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">```</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">I am wondering what if I don't want to use a ThreadLocal but ScopeValue? Is it the tool to solve this problem? Current API allows me to run a lambda within a scope through `ScopedValue.runWhere(</span><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">scopedValue, "foo", () -> {})`. But what if I wanted to separate this into 2 steps, the scope opening and closing? There is the `StructuredTaskScope` but I have trouble understanding how that could be used for that matter.</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">Thank you.</span><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">[1] - </span><a href="https://micrometer.io/" style="color:rgb(66,133,244);font-family:'-apple-system','helvetica neue';font-size:1rem;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px" target="_blank">https://micrometer.io/</a><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">[2] - </span><a href="https://github.com/openzipkin/brave/blob/6.0.3/brave/src/main/java/brave/Tracer.java#L395-L403" style="color:rgb(66,133,244);font-family:'-apple-system','helvetica neue';font-size:1rem;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px" target="_blank">https://github.com/openzipkin/brave/blob/6.0.3/brave/src/main/java/brave/Tracer.java#L395-L403</a><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">[3] - </span><a href="https://github.com/openzipkin/brave/blob/6.0.3/context/slf4j/src/main/java/brave/context/slf4j/MDCScopeDecorator.java#L61-L74" style="color:rgb(66,133,244);font-family:'-apple-system','helvetica neue';font-size:1rem;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px" target="_blank">https://github.com/openzipkin/brave/blob/6.0.3/context/slf4j/src/main/java/brave/context/slf4j/MDCScopeDecorator.java#L61-L74</a><br style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none"><span style="color:rgb(49,49,49);font-family:'-apple-system','helvetica neue';font-size:17px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px;text-decoration:none;display:inline!important;float:none">[4] - </span><a href="https://github.com/micrometer-metrics/micrometer/blob/v1.13.0/micrometer-observation/src/main/java/io/micrometer/observation/ObservationHandler.java#L59-L71" style="color:rgb(66,133,244);font-family:'-apple-system','helvetica neue';font-size:1rem;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:1px" target="_blank">https://github.com/micrometer-metrics/micrometer/blob/v1.13.0/micrometer-observation/src/main/java/io/micrometer/observation/ObservationHandler.java#L59-L71</a></div>
</div>