From ebfced13639db17ad4348fefb2805b5d234ee178 Mon Sep 17 00:00:00 2001 From: Ivan Topolnjak Date: Tue, 9 Dec 2014 14:36:55 +0100 Subject: = newrelic: protect (again) against missing mixin of TraceContextAware in error events, related to #29 --- .../main/scala/kamon/newrelic/NewRelicErrorLogger.scala | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'kamon-newrelic') diff --git a/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelicErrorLogger.scala b/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelicErrorLogger.scala index d6920ad2..9c4b90d3 100644 --- a/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelicErrorLogger.scala +++ b/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelicErrorLogger.scala @@ -41,15 +41,18 @@ class NewRelicErrorLogger extends Actor with ActorLogging with CustomParamsSuppo def notifyError(error: Error): Unit = runInFakeTransaction { val params = new util.HashMap[String, String]() - val ctx = error.asInstanceOf[TraceContextAware].traceContext - val httpContext = TraceLocal.retrieve(HttpContextKey) - params put ("TraceToken", ctx.token) + if(error.isInstanceOf[TraceContextAware]) { + val ctx = error.asInstanceOf[TraceContextAware].traceContext + val httpContext = TraceLocal.retrieve(HttpContextKey) - httpContext.map { httpCtx ⇒ - params put ("User-Agent", httpCtx.agent) - params put ("X-Forwarded-For", httpCtx.xforwarded) - params put ("Request-URI", httpCtx.uri) + params put ("TraceToken", ctx.token) + + httpContext.map { httpCtx ⇒ + params put ("User-Agent", httpCtx.agent) + params put ("X-Forwarded-For", httpCtx.xforwarded) + params put ("Request-URI", httpCtx.uri) + } } customParams foreach { case (k, v) ⇒ params.put(k, v) } -- cgit v1.2.3