aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/TraceContextSwap.scala
diff options
context:
space:
mode:
Diffstat (limited to 'kamon-core/src/main/scala/kamon/TraceContextSwap.scala')
-rw-r--r--kamon-core/src/main/scala/kamon/TraceContextSwap.scala8
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
}
}