diff options
Diffstat (limited to 'kamon-core/src/main/scala/kamon/TraceContextSwap.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/TraceContextSwap.scala | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/kamon-core/src/main/scala/kamon/TraceContextSwap.scala b/kamon-core/src/main/scala/kamon/TraceContextSwap.scala index c25e63d1..470b2f34 100644 --- a/kamon-core/src/main/scala/kamon/TraceContextSwap.scala +++ b/kamon-core/src/main/scala/kamon/TraceContextSwap.scala @@ -10,19 +10,23 @@ trait TraceContextSwap { def withContext[A](ctx: Option[TraceContext], body: => A): A = withContext(ctx, body, body) def withContext[A](ctx: Option[TraceContext], primary: => A, fallback: => A): A = { - ctx match { + + val previous = Tracer.context() + val r = ctx match { case Some(context) => { //MDC.put("uow", context.userContext.get.asInstanceOf[String]) Tracer.set(context) val bodyResult = primary - Tracer.clear + //Tracer.clear //MDC.remove("uow") bodyResult } case None => fallback } + previous.map(ctx => Tracer.set(ctx)) + r } } |